摘要:        
原题地址非常经典的题目了。双栈法,一个普通栈,一个最小值栈入栈时:除了入普通栈之外,如果当前待入栈元素小于等于最小值栈顶元素,那么同时入最小值栈出栈时:除了出普通栈之外,如果当前待出栈元素小于等于最小值栈顶元素,那么同时出最小值栈查看栈顶元素:返回普通栈顶元素查看最小元素:返回最小值栈顶元素代码: ...    阅读全文
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)
        
                    
                
浙公网安备 33010602011771号