水题
ttouri
这个作者很懒,什么都没留下…
展开
-
一个序列是否可能是push序列的pop序列
输入两个整数序列。其中一个序列表示栈的push顺序,判断另一个序列有没有可能是对应的pop顺序。原创 2014-09-27 00:15:44 · 846 阅读 · 0 评论 -
二元树中和为某一值的所有路径
二元树中和为某一值的所有路径原创 2014-07-18 21:21:23 · 985 阅读 · 0 评论 -
单源最短路径问题
如图,求V0到其他顶点的最短路径及其长度, 废话少说,用Dijkstra算法。我在《数据结构(C语言版)》里面的代码的基础上写了一个直接保存路径的版本。看代码, #include #include using namespace std; #define MAXINT 1000000 // src -- 为源节点 // g[][] -- 有向图的邻接矩阵 //原创 2014-08-02 15:37:25 · 1135 阅读 · 0 评论 -
求无序数组中第二大的数--快速选择
之前去面试遇到了这个问题,题目:找出无序数组中第二大的数字。 定睛一看,好简单,一次遍历就可以找出第二大的数字,不过,这样写没有什么特别之处,因为实在是太简单了。自己仔细想想起了之前做过的题,看看有没有什么类似的。于是,想起了之前在网上看到的一道面试题:找出无序数组中最小的k个数。 要找出最小的k个数,可以用快速选择算法,只要在快速排序之后,枢纽刚好是第k+1个数,那么,他左边的数,原创 2014-08-05 15:26:38 · 3641 阅读 · 0 评论 -
跳台阶问题
题目:一个台阶总共有n级,如果一次可以跳1级,也可以跳2级。求总共有多少总跳法,并分析算法的时间复杂度。 在这里看到这道面试题,思路是: 1)每次可以跳1级,也可以跳2级,如果当前只有1级台阶,那么就只有一次跳法;如果当前只有2级台阶,就有2种跳法(一种是每次跳1级,跳2次;另一种是一次跳2级,就跳完),也即 f(1) = 1; f(2) = 2。 2)假设有n原创 2014-08-13 18:32:25 · 1067 阅读 · 0 评论 -
Length of Last Word
leetcode上的一道题,题目: Given a string s consists of upper/lower-case alphabets and empty space characters ' ', return the length of last word in the string. If the last word does not exist, retur原创 2014-09-16 00:00:49 · 750 阅读 · 0 评论 -
哥也能写KMP了——实现strstr()
经过上次去面试,面试官要求实现strstr(),当场就蒙了,KMP该怎么写啊,这是又要挂了。不行,不能再栽在这里了,不能再菜下去了,于是,立马抄起书《数据结构(C语言版)》,看了一下,感觉,KMP实现起来,代码是很少的,效率还算可以了,实现的过程中,难就难在如何构造next[] 数组,以及如何理解next[],对避免指针无效回退的作用。看了一个上午,总算是明白了。现就贴下代码,做下笔记。 #原创 2014-09-18 12:15:37 · 1378 阅读 · 0 评论 -
GCD求最大公约数
求最大公约数,原创 2014-09-19 12:46:25 · 1603 阅读 · 0 评论 -
Pow(x, n)
Implement pow(x, n).原创 2014-09-16 00:07:14 · 692 阅读 · 0 评论 -
Same Tree
leetcode 一道判断两棵树是否相同的题:原创 2014-09-21 00:57:47 · 679 阅读 · 0 评论 -
手摇算法
如何实现字符串倒置呢,直接用头尾两个指针从两边向中间扫,并且不断交换两个指针的内容, void reverse(int a[], int n){ if(n < 2) return; for(int i = 0; i <= n;) swap(a[i++], a[--n]); } 然后,如果要实现字符串反转呢,比如,有字符串abcdefg,假设要将前n个字符与剩下的字符串交换位置原创 2015-03-16 23:30:03 · 1907 阅读 · 0 评论