Stack
文章平均质量分 74
Dylan_Java_NYC
练很重要,总结更重要,感谢CSDN给了我这么好的平台交流。
展开
-
LeetCode Evaluate Reverse Polish Notation
原题链接在这里:https://leetcode.com/problems/evaluate-reverse-polish-notation/思路: 利用栈,遇到数字就压栈,遇到运算符就先pop() op2, 再pop() op1, 按op1 运算符op2 计算,得出结果压回栈,最后站内剩下的就是结果。Note: 1.String str to character, use str.t原创 2015-08-22 01:10:12 · 261 阅读 · 0 评论 -
LeetCode Longest Valid Parentheses
原题链接在这里:https://leetcode.com/problems/longest-valid-parentheses/和Largest Rectangle in Histogram都是往栈内存index. 生成一个stack, 从头往后扫string, 遇到'(', 就把当前index存入到stack中。当遇到 ')'时要看当前stack是后为空,若为空,更新新起点start原创 2015-09-17 23:24:06 · 371 阅读 · 0 评论 -
LeetCode Maximal Rectangle
原题链接在这里:https://leetcode.com/problems/maximal-rectangle/与Largest Rectangle in Histogram Largest Rectangle in Histogram Largest Rectangle in Histogram Largest Rectangle in Histogram相似AC Java:pu原创 2015-09-17 22:55:18 · 421 阅读 · 0 评论 -
LeetCode Binary Tree Zigzag Level Order Traversal
原题链接在这里:https://leetcode.com/problems/binary-tree-zigzag-level-order-traversal/这道题是BFS的变形,与Binary Tree Level Order Traversal相似。但是要求偶数行从左到右,奇数行从右到左。这种顺序正反交替可以用两个stack来实现。一个用来读取,一个用来存储下一层节点。Time O原创 2015-08-21 07:48:21 · 303 阅读 · 0 评论 -
LeetCode Basic Calculator II
原题链接在这里:https://leetcode.com/problems/basic-calculator-ii/与Basic Calculator类似。思路: 扫一遍string,遇见数字时看栈顶是不是 '*' 或者 '/',若不是,就压栈,若是就取出栈顶两个元素算结果,再押回栈。遇见符号就压栈。基本就是先算了 乘除运算。剩下栈里的就是加减运算了。这里注意需用到翻转栈, 使原创 2015-08-21 12:21:54 · 270 阅读 · 0 评论 -
LeetCode Basic Calculator
原题链接在这里:https://leetcode.com/problems/basic-calculator/思路: 1. 遇到数字位,看后一位是否为数字,若是位数字,当前位需要进十.2. 开始设sign = 1,若遇到 ' - ', sign 改为 -1,若遇到 '+',sign改回1.3. 遇到 '(', 压栈,先压之前的res,后压sign,然后初始化res和sign.4.原创 2015-08-21 09:42:54 · 274 阅读 · 0 评论 -
LeetCode Binary Search Tree Iterator
原题链接在这里:https://leetcode.com/problems/binary-search-tree-iterator/AC Java:/** * Definition for binary tree * public class TreeNode { * int val; * TreeNode left; * TreeNode rig原创 2015-09-11 06:07:29 · 295 阅读 · 0 评论 -
LeetCode Binary Tree Preorder Traversal
原题链接在这里:https://leetcode.com/problems/binary-tree-preorder-traversal/虽然原题要求不让用recursion,但还是试了一下。一试发现自己的recursion真心无语。Method 1 是Recursion,学到的新方法就是若是要在recursion中维护一个生成的变量,可以再造一个函数,然后把这个要维护的变量当成argum原创 2015-08-19 09:15:12 · 483 阅读 · 0 评论 -
LeetCode Binary Tree Postorder Traversal
原题链接在这里:https://leetcode.com/problems/binary-tree-postorder-traversal/与Binary Tree Preorder Traversal 和 Binary Tree Inorder Traversal 类似。Method 1: RecursionTime O(n), Space O(logn)/** * De原创 2015-08-20 08:01:01 · 323 阅读 · 0 评论 -
LeetCode Binary Tree Inorder Traversal
原题链接在这里:https://leetcode.com/problems/binary-tree-inorder-traversal/#本题与Binary Tree Preorder Traversal相呼应。可以分别采用Recursion, Iteration 和 Morris Traversal 三种方法。Method 1: RecursionRecursio原创 2015-08-20 02:48:01 · 296 阅读 · 0 评论 -
LeetCode Binary Tree Level Order Traversal II
原题链接在这里:https://leetcode.com/problems/binary-tree-level-order-traversal-ii/与Binary Tree Level Order Traversal相似,只是返过来加链表。自然想到多用一个stack即可。像BFS用queue一层一层扫,出queue时添加到list里,用curCount计数,为0时表示当前level走完,li原创 2015-09-05 01:47:27 · 269 阅读 · 0 评论 -
LeetCode Min Stack
原题链接在这里: https://leetcode.com/problems/min-stack/push(), pop(),top() 都是原有的API, 关键是getMin(). 可以用另一个stack, min_stk来维护这个最小值。push()时检测x是否小于等于min_stk 的peek(), 若true,则同时push进min_stk.pop()时若该值等于min_stk.p原创 2015-08-19 05:07:49 · 339 阅读 · 0 评论 -
LeetCode Implement Stack using Queues
原题链接在这里:https://leetcode.com/problems/implement-stack-using-queues/Method 1: 用两个queue来实现stack,push(x) 时,x先放到queue2,在把queue1逐个接到queue2上,再把queue1和queue2互换即可。pop()时直接poll出来queue1的第一个元素即可。top() 与原创 2015-08-18 10:57:53 · 400 阅读 · 0 评论 -
LeetCode Implement Queue using Stacks
原题链接在这里:https://leetcode.com/problems/implement-queue-using-stacks/本题与Implement Stack using Queues相对应。用Stack implement queue时,可以采用两个stack,add时就是一直像stk1中压栈。poll()时把stk1的所有元素逐个压入另一个stack stk2中,现在s原创 2015-08-18 11:35:01 · 275 阅读 · 0 评论 -
LeetCode Valid Parentheses
原题链接在这里:https://leetcode.com/problems/valid-parentheses/当遇到'(', '[', '{' 时压栈,当遇到')', ']', '}'时观察stk是否为空,若是空,返回false,若不是,pop()出来的第一个元素是否对应,若不对应, 返回false. 读完整个string若stk不空,返回false。若没问题,返回true。AC原创 2015-08-18 12:02:08 · 254 阅读 · 0 评论 -
LeetCode Largest Rectangle in Histogram
原题链接在这里:https://leetcode.com/problems/largest-rectangle-in-histogram/参考了这篇帖子:http://www.cnblogs.com/lichen782/p/leetcode_Largest_Rectangle_in_Histogram.html里面讲的很清楚,生成了stack, 当遇到比stack 顶部更大array元素时原创 2015-09-17 04:35:41 · 675 阅读 · 0 评论