摘要: 原题地址非常经典的题目了。双栈法,一个普通栈,一个最小值栈入栈时:除了入普通栈之外,如果当前待入栈元素小于等于最小值栈顶元素,那么同时入最小值栈出栈时:除了出普通栈之外,如果当前待出栈元素小于等于最小值栈顶元素,那么同时出最小值栈查看栈顶元素:返回普通栈顶元素查看最小元素:返回最小值栈顶元素代码: ... 阅读全文
posted @ 2015-01-26 15:23 李舜阳 阅读(545) 评论(0) 推荐(0)
摘要: 原题地址方法I:枚举依次枚举前缀,然后检验改进1:只需从长到短枚举最短的字符串的前缀改进2:检验前缀合法性时可以进行剪枝优化,加快搜索效率时间复杂度不不太好分析,加上改进之后效率还不错。方法II:字典树时间复杂度O(nm),其中n是字符串个数,m是字符串长度代码: 1 struct TrieNode... 阅读全文
posted @ 2015-01-26 15:05 李舜阳 阅读(143) 评论(0) 推荐(0)
摘要: 原题地址有人些的做法是判断中序遍历序列是否是回文串,一开始我觉得挺有道理,但是琢磨了一阵觉得没那么简单。比如下面这个树: 1 / 1 / 1中序遍历序列是"111",虽然是回文串但这棵树明显不是对称的。如果要是把NULL也算进去呢?还是上面... 阅读全文
posted @ 2015-01-26 14:40 李舜阳 阅读(167) 评论(0) 推荐(0)
摘要: 原题地址n!含有多少个因子10,则结尾有多少个010=2*5,而2的个数肯定比5多,所以n!含有多少个因子5,则结尾有多少个0如何计算n!有多少个因子5呢?比如n=13,则:n! = 13 * 12 * 11 * 10 * 9 * 8 * 7 * 6 * 5 * 4 * 3 * 2 * 1 ... 阅读全文
posted @ 2015-01-26 12:21 李舜阳 阅读(222) 评论(0) 推荐(0)
摘要: 原题地址因为是道简单题,所以最简单的字符串匹配应该也能过,但还是练习一下KMP算法为好。KMP算法的介绍可以参考这篇以后有时间试试Boyer-Moore算法代码: 1 int strStr(char *haystack, char *needle) { 2 if (!needle[0]) ret... 阅读全文
posted @ 2015-01-26 11:50 李舜阳 阅读(171) 评论(0) 推荐(0)
摘要: 原题地址方法I:排序+字典序枚举。生成字典序的方法见这里方法II:排列树(其实就是DFS)下图是一个排列树,每一层标红的字符是已经枚举完毕的部分,在后代节点中也不再变化;下划线的部分是待枚举排列的部分,在后代节点中将依次枚举。可见,排列树将问题一层一层分解为子问题,非常直观。如何从一个节点生成儿子节... 阅读全文
posted @ 2015-01-26 11:08 李舜阳 阅读(290) 评论(0) 推荐(0)
摘要: 原题地址最直观的想法就是手动模拟一下,找找坐标在旋转时的规律为了方便实现,可以一层一层地旋转矩阵:先旋转最外层边框,然后再旋转次外层边框...以此类推在网上看到一种极其残暴的做法,只需要2次翻转1. 沿左下-右上对角线对称翻转2. 上下翻转还有其他变种,但基本思路都是这样,两次翻转即可搞定很神奇,以... 阅读全文
posted @ 2015-01-25 19:30 李舜阳 阅读(413) 评论(0) 推荐(0)
摘要: 原题地址非常经典的一道题。可以转换成求最大连续和做,但是有更简单的方法。基于一个数学定理:如果一个数组的总和非负,那么一定可以找到一个起始位置,从他开始绕数组一圈,累加和一直都是非负的(证明貌似不难,以后有时间再补)有了这个定理,判断到底是否存在这样的解非常容易,只需要把全部的油耗情况计算出来看看是... 阅读全文
posted @ 2015-01-25 17:00 李舜阳 阅读(4208) 评论(0) 推荐(1)
摘要: 原题地址遍历所有数字,统计每一位出现的次数,模3即为只出现一次的数字在那一位的情况。代码: 1 int singleNumber(int A[], int n) { 2 int count[32] = {0}; 3 4 for (int i = 0; i >= 1; 8 } 9 ... 阅读全文
posted @ 2015-01-25 16:43 李舜阳 阅读(173) 评论(0) 推荐(0)
摘要: 原题地址用栈保存化简后的路径。把原始路径根据"/"切分成若干小段,然后依次遍历若当前小段是"..",弹栈若当前小段是".",什么也不做否则,入栈代码: 1 string simplifyPath(string path) { 2 vector buffer; 3 char *tok = NU... 阅读全文
posted @ 2015-01-25 16:31 李舜阳 阅读(162) 评论(0) 推荐(0)