摘要: https://oj.leetcode.com/problems/evaluate-reverse-polish-notation/当年上课的例子。就是栈的应用,每次遇到操作符就把栈的头两个元素与操作符进行计算,再将结果压栈,如果逆波兰式没有问题,那么最后栈里应该只剩一个元素。需要注意的有两个地方:... 阅读全文
posted @ 2014-10-04 22:09 zombies 阅读(128) 评论(0) 推荐(0) 编辑
摘要: https://oj.leetcode.com/problems/longest-valid-parentheses/这题一直没有把问题想清楚,浪费了不少时间。最终解法如下:1)第一次遍历所有元素,用一个栈记录还没有匹配的"("括号的位置,在遇到")"括号匹配时出栈一个元素。2)用一个bool 数组... 阅读全文
posted @ 2014-10-04 21:21 zombies 阅读(203) 评论(0) 推荐(0) 编辑
摘要: https://oj.leetcode.com/problems/interleaving-string/这种字符串的题目已经把DP或MEMO写在了脸上。这题容易想到O(m1*m2*n)的DP方案,但这种方法有很多空间和时间的浪费。需要注意到我们在递推的比较过程中如果知道s1,s2上的指针p,q的情... 阅读全文
posted @ 2014-10-04 17:01 zombies 阅读(168) 评论(0) 推荐(0) 编辑
摘要: https://oj.leetcode.com/problems/two-sum/这道题我的方案是O(nlogn)的,首先将数组和其序号放进pair中,然后排序这个pair数组。之后就是枚举第一个数,二分查找第二个数。我使用了lower_bound:1)可以在pair数组中查找pair,这时只需要随... 阅读全文
posted @ 2014-10-04 15:08 zombies 阅读(213) 评论(0) 推荐(0) 编辑
摘要: https://oj.leetcode.com/problems/word-ladder/Word Ladder II的简化版。这个跟II比起来只需要搜索出来最短路径即可。我使用的方法还是BFS,用按层次搜索的层次来当做每个结点的距离。从start出发,不断修改单词进行扩展结点。当搜索到end时就停... 阅读全文
posted @ 2014-10-04 14:19 zombies 阅读(260) 评论(0) 推荐(0) 编辑
摘要: https://oj.leetcode.com/problems/maximum-depth-of-binary-tree/求最大深度。需要考虑root==NULL的情况,所以可以递归到NULL节点上。 阅读全文
posted @ 2014-10-04 00:36 zombies 阅读(76) 评论(0) 推荐(0) 编辑
摘要: https://oj.leetcode.com/problems/minimum-window-substring/线性复杂度的限制下,考虑使用滑动窗口法。这个方法的思路就是维持一个窗口,窗口向右边界扩张以满足限制条件。窗口左边界收缩以尽量使其最小。注意这个题目可能是一个典型的滑动窗口方法的实现。外... 阅读全文
posted @ 2014-10-04 00:25 zombies 阅读(685) 评论(0) 推荐(0) 编辑