leetcode-stack-queue
hebastast
这个作者很懒,什么都没留下…
展开
-
leetcode-implement-queue-using-stacks
leetcode 上很简单的用两个堆栈来模拟队列 https://leetcode.com/problems/implement-queue-using-stacks/import java.util.LinkedList;class MyQueue { /* * myqueue use two tack to simulate queue ,use push() operat原创 2015-11-20 20:02:42 · 424 阅读 · 0 评论 -
20. Valid Parentheses
class Solution {public: bool isValid(string s) { stack<char> q; for(int i=0;i<s.size();i++) { if(s[i]=='('||s[i]=='['||s[i]=='{') q.push(s[i]);原创 2016-04-27 22:55:13 · 282 阅读 · 0 评论 -
84. Largest Rectangle in Histogram
详细的解释可以看下下面链接的博客 http://www.cnblogs.com/hxsyl/archive/2012/08/16/2643015.htmlclass Solution {private: struct node{ int width; int height; };public: int largestRectangleAr原创 2016-04-28 23:15:38 · 297 阅读 · 0 评论 -
42. Trapping Rain Water
对某个值height[i]来说,能trapped的最多的water取决于在i之前最高的值lefthighest[i]和在i右边的最高的值righthighest[i](均不包含自身)。 如果min(left,right) > height[i],那么在i这个位置上能trapped的water就是min(left,right) – height[i]。using namespace std;cla原创 2016-04-28 23:18:13 · 335 阅读 · 0 评论 -
146. LRU Cache
在写代码前看了两篇博客才大概理解了java中的hashmap和linkedhashmap http://zhangshixi.iteye.com/blog/673789 http://zhangshixi.iteye.com/blog/672697import java.util.HashMap;import java.util.LinkedHashMap;public class LRUC原创 2016-05-04 15:22:06 · 714 阅读 · 0 评论 -
225. Implement Stack using Queues
class Stack {private: queue<int> q;public: // Push element x onto stack. void push(int x) { q.push(x); for(int i=0;i<q.size()-1;i++) { q.push(q.front(原创 2016-10-21 13:37:56 · 268 阅读 · 0 评论 -
224. Basic Calculator
class Solution {public: int calculate(string s) { stack<int> opt,ret; int result,nums,flag; result=nums=0; flag=1; for(int i=0;i<s.size();i++) { char c=s[i];原创 2016-10-21 14:51:23 · 272 阅读 · 0 评论 -
341. Flatten Nested List Iterator
class NestedIterator {private: stack<NestedInteger> s;public: NestedIterator(vector<NestedInteger> &nestedList) { for(int i=nestedList.size()-1;i>=0;i--) { s.push(原创 2016-12-11 10:25:39 · 327 阅读 · 0 评论 -
407. Trapping Rain Water II
package leetcode;import java.util.*;public class Solution{ class Cell{ int col; int row; int height; public Cell(int col,int row,int height){ this.col=c原创 2017-01-24 12:35:45 · 319 阅读 · 0 评论 -
32. Longest Valid Parentheses
用一个数组记录所有匹配的地方 然后在数组中寻找最长的匹配地方class Solution {public: int longestValidParentheses(string s) { stack<int> q; int *a =(int *)malloc(s.size()*sizeof(int)); for(int i=0;i<s.si原创 2016-04-27 11:42:16 · 230 阅读 · 0 评论 -
150. Evaluate Reverse Polish Notation
class Solution {public: int evalRPN(vector<string>& tokens) { stack<int> q; for(int i=0;i<tokens.size();i++) { if(tokens[i]!="+"&&tokens[i]!="/"&&tokens[i]!="*"原创 2016-04-27 10:35:05 · 276 阅读 · 0 评论 -
Valid Anagram
方法1 先排序 后判断是否相等#include "stdafx.h"#include <algorithm>#include <string>using namespace std;class Solution {public: bool isAnagram(string s, string t) { sort(s.begin(), s.end());原创 2016-02-29 22:21:06 · 329 阅读 · 0 评论 -
different-ways-to-add-parentheses
https://leetcode.com/problems/different-ways-to-add-parentheses/ 使用递归 枚举出所有的可能情况再相加相减或者相乘#include <vector>#include <string>using namespace std;class Solution {public: vector<int> diffWaysToComp原创 2016-03-01 20:48:31 · 368 阅读 · 0 评论 -
Sliding Window Maximum
https://leetcode.com/problems/sliding-window-maximum/’ 使用一个双端队列 保证队列的前端是当前搜索的k个元素中最大的元素 当从队列的前端到 当前搜索的元素 的总数大于了k 则删除最前端的元素 从第K个元素开始 每次向结果中添加队列最前面的元素#include <vector>#include <deque>using namespac原创 2016-03-02 22:44:48 · 307 阅读 · 0 评论 -
Product of Array Except Self
#include <vector>using namespace std;class Solution {public: vector<int> productExceptSelf(vector<int>& nums) { vector<int> result(nums.size()); int multi = 1; bool zerofl原创 2016-03-04 19:46:00 · 326 阅读 · 0 评论 -
Delete Node in a Linked List
class Solution {public: void deleteNode(ListNode* node) { ListNode *a; a = node->next; node->val = a->val; node->next = a->next; }};原创 2016-03-04 20:11:01 · 352 阅读 · 0 评论 -
Remove Duplicates from Sorted Array
#include <vector>using namespace std;class Solution {public: int removeDuplicates(vector<int>& nums) { if (nums.size() == 0) return 0; int last, checknum;//last为不重复数组的原创 2016-02-25 20:43:37 · 307 阅读 · 0 评论 -
Remove Duplicates from Sorted Array II
这也是一道去除重复元素的题目 但是允许重复的元素最多为2 在上一道题目的启发下 利用last来记录生成的数组的最后一个元素的下标 curnum为当前扫描的位置的下标 num记录重复的元素的个数 if (nums[checknum] != nums[last]) { num = 1; nums[++原创 2016-02-25 21:57:23 · 341 阅读 · 0 评论 -
ntersection-of-two-linked-lists
https://leetcode.com/problems/intersection-of-two-linked-lists/ 由于链表的最后是合在一起的 所以在遍历的时候到末尾的长度一定相等的 假设两条链表的长度是m n m>n 方法是从短链表的头部 和 从长链表 距离链表尾部和短链表一样长的地方开始遍历 如果指向相同的地址就把这个地址返回x指向长链表的首部 y指向短链表的首部 x原创 2016-02-28 15:27:23 · 422 阅读 · 0 评论 -
binary-search-tree-iterator
https://leetcode.com/problems/binary-search-tree-iterator/ 利用非递归 中序遍历的思想class BSTIterator {private: stack<TreeNode*> s;public: BSTIterator(TreeNode *root) { while (!s.empty())原创 2016-02-29 21:24:42 · 418 阅读 · 0 评论 -
按照之字形打印二叉树
#include <string>#include <iostream>#include <vector>#include <cstring>#include <stack>using namespace std;struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right;原创 2017-03-14 19:30:24 · 381 阅读 · 0 评论