1.冒泡排序已知一组无序数据a[1]、a[2]、……a[n],需将其按升序排列。首先比较a[1]与a[2]的值,若a[1]大于a[2]则交换两者的值,否则不变。再比较a[2]与a[3]的值,若a[2]大于a[3]则交换两者的值,否则不变。再比较a[3]与a[4],以此类推,最后比较a[n-1]与a[...
分类:
编程语言 时间:
2015-03-30 20:27:37
阅读次数:
169
这道题最笨的方法就是先从16个数中选出最大的数,然后再从剩下的15个数中选出最大数就可得到答案,因此,需要15+14=29次比较。既然这道题要求在20次比较之内就能找出第二大的数,那我们就想能简单的方法。假设16个数中最大的是A,第二大的是B。首先将16个数两两进行比较,较大者胜出,然后再在胜出者中...
分类:
编程语言 时间:
2015-03-20 23:34:07
阅读次数:
190
1.把二元查找树转变成排序的双向链表题目:输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。要求不能创建任何新的结点,只调整指针的指向。 10 / \ 6 14/ \ / \4 8 12 16转换成双向链表4=6=8=10=12=14=16。首先我们定义的二元查找树 节点的数据结构如下:s...
分类:
编程语言 时间:
2015-03-13 08:10:49
阅读次数:
147
20.寻找2D矩阵
给定一个从左到右从上到下递增的m*n矩阵,判断target是否在矩阵中
例:
[
[1, 3, 5, 7],
[10, 11, 16, 20],
[23, 30, 34, 50]
]
Target=3
返回:true
思路:二分查找
Code:
public class test {
public static boolean sea...
分类:
编程语言 时间:
2015-03-12 11:37:11
阅读次数:
186
17.最长连续序列
给定一个无序数组,求最长连续序列的长度。要求负责度为O(n)
例:数组num:[100, 4, 200,1, 3, 2]的最长连续序列为[1,2,3,4],长度为4
解法一:建立一个bool数组,用于表示该数字是否存在,之后求数组中连续为true的最长值即可。在[100, 4, 200, 1, 3, 2]中,其最小值为1,最大值为200,因此建立长度为iMax-iMin+...
分类:
编程语言 时间:
2015-03-11 10:51:55
阅读次数:
137
6.匹配正则表达式
编写函数boolisMatch(String s, String p),完成正则表达式中“.”和“*”的功能。例:
isMatch("aa","a")return false
isMatch("aa","aa")return true
isMatch("aaa","aa")return false
isMatch("aa", "a*")return tru...
分类:
编程语言 时间:
2015-03-05 13:05:32
阅读次数:
218
July西电讲座2014.09第一部分、面试–笔试面试考什么–解决笔试面试题的常用算法–常用算法的时间复杂度–O(N)时间复杂度内能解决的问题第二部分、算法–如何学习算法循序渐进(KMP)相互串联(以Trie树、后缀树,贪心、动态规划为例)追本溯源(二叉树、红黑树、2-3-4树、B树?.
分类:
编程语言 时间:
2015-02-20 00:22:50
阅读次数:
376
.//有一个整数数组,有负数和整数,用一个方法把正负数分开,要求空间复杂度是O(1),时间复杂度是:O(N)
/**
????*?分数组
????*/
???public?static?void?awaylist(){
??????int?a[]?=?n...
分类:
移动开发 时间:
2015-02-06 15:20:07
阅读次数:
225
程序员面试、算法研究、编程艺术、红黑树、数据挖掘5大经典原创系列集锦与总结(部分博文github优化版阅读地址:https://github.com/julycoding/The-Art-Of-Programming-By-July)作者:July--结构之法算法之道blog之博主。时间:2010年...
分类:
编程语言 时间:
2014-12-14 00:41:09
阅读次数:
440
题目:求1+2+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字以及条件判断语句(A?B:C)。不能用条件语句,基本上只有考虑递归。常规解法:利用构造函数的每次初始化来实现递增class Sum {public: Sum() {num++; sum...
分类:
编程语言 时间:
2014-11-25 20:25:39
阅读次数:
168