leetcode&poj
站在风口的熊
git:https://github.com/barebear
email:1432649234@qq.com
欢迎交流
展开
-
87. 扰乱字符串
class Solution { public: bool isScramble(string s1, string s2) { if(s1.length()!=s2.length()) return false; //只要寻找到左边字符集合完整包含右边字符集合,就符合 map<char,int> s1Index,s2Index; int uniq1Numbers=0,uniq2Numbers = .原创 2020-06-14 23:47:35 · 221 阅读 · 0 评论 -
68. 文本左右对齐
class Solution { public: vector<string> fullJustify(vector<string>& words, int maxWidth) { int lastWordsIndex=-1,//上轮循环处理的最后一个word wordsTotalNow = 0,//当前循环统计的words数量 charsTotalNow=0,//当前循环统计的char数量 c.原创 2020-06-12 14:40:12 · 305 阅读 · 0 评论 -
42. 接雨水
public: int trap(vector<int>& height) { //1.重点抓住v形,顶点的投影,以及最高点左右分别不同方式计算 //每次遇到新顶点,更新投影,把小于当前投影的数据擦掉,增加当前顶点的投影; //如果当前顶点大于之前所有的投影,则计算数据(最高和第二高决定雨水量),并且擦掉低于该顶点的投影 //2.分治;找到最高点,并以此划分左右两部分,分别计算左右两部分; //左.原创 2020-06-10 15:17:17 · 159 阅读 · 0 评论 -
41. 缺失的第一个正数
public: int firstMissingPositive(vector<int>& nums) { //有个规律需要思考出来:这个最小数字,肯定处于1~n+1之间 //0-n-1 存储 1-n 之间的数字。 //最后来一次遍历,如果存在缺失,则缺失的即为所求;否则,n+1即为所求 //存储的过程,可以描述为:下标从0-n-1遍历数组,如果符合nums[i-1]==i,则继续, //否则,sw.原创 2020-06-10 15:16:20 · 107 阅读 · 0 评论 -
37. 解数独
public: void solveSudoku(vector<vector<char> >& board) { if(board.size()<=0 && board[0].size()<=0){ return; } int rowLimits[board.size()][9]; int colLimits[board[0].size()...原创 2020-06-10 15:11:00 · 146 阅读 · 0 评论 -
22. 括号生成
public: //重点:leftNum >= rightNum 限制条件 vector<string> generateParenthesis(int n) { vector<string> rets; string parenthesis = ""; //2*n个字符;简单的二分即可。 generateParenthesis(n,0,0,parenthesis,rets); r.原创 2020-06-10 15:05:55 · 147 阅读 · 0 评论 -
10. 正则表达式匹配
public: bool isMatch(string s, string p) { int sLength=s.length(),pLength = p.length(),i=0,j=0;//i,s的逆序号,j,p的逆序号 bool dp[sLength+1][pLength+1];//s尾部和p尾部字符串的匹配数组,0-slength,0-plength for (int i = 0; i <= sLength; ...原创 2020-06-10 14:56:11 · 176 阅读 · 0 评论 -
110. Balanced Binary Tree
class Solution {public: bool isBalanced(TreeNode* root) { if(root==NULL) return true; int left = treeDiffer(root->left);cout<<left<<endl; int right = treeDiffer(...原创 2018-03-06 19:25:33 · 114 阅读 · 0 评论 -
109. Convert Sorted List to Binary Search Tree
class Solution {public: TreeNode* sortedListToBST(ListNode* head) { ListNode* tail = head; ListNode* middle = head; while(tail!=NULL&&tail->next!=NULL){ t...原创 2018-03-06 18:42:28 · 126 阅读 · 0 评论 -
104. Maximum Depth of Binary Tree
class Solution {public: int maxDepth(TreeNode* root) { int depth = 0; if(!root) return 0; depth++; int left = 0; int right = 0; left = maxD原创 2018-02-06 10:24:03 · 127 阅读 · 0 评论 -
111. Minimum Depth of Binary Tree
class Solution {public: int minDepth(TreeNode* root) { if(root==NULL) return 0; if(root->left==NULL && root->right==NULL){ return 1; } if(root-&...原创 2018-03-07 14:17:57 · 111 阅读 · 0 评论 -
leetcode103. Binary Tree Zigzag Level Order Traversal
class Solution {public: vector> zigzagLevelOrder(TreeNode* root) { stack treeLeftToRight; stack treeRightToLeft; vector> result; vector tempResult;原创 2018-02-06 10:14:51 · 180 阅读 · 0 评论 -
leetcode102. Binary Tree Level Order Traversal
class Solution {public: vector> levelOrder(TreeNode* root) { //root,level,result vector> result; levelOrder(result,root,0); return result; } void l原创 2018-02-05 22:00:20 · 154 阅读 · 0 评论 -
101. Symmetric Tree
class Solution {public: bool isSymmetric(TreeNode* root) { if(!root) return true; return isSymmetric(root->left,root->right); } bool isSymmetric(TreeNode* root原创 2018-02-05 00:13:50 · 116 阅读 · 0 评论 -
100. Same Tree
class Solution {public: bool isSameTree(TreeNode* p, TreeNode* q) { if(!p && !q) return true; if(!p || !q) return false; if(p->val!=q->val) return false; ret原创 2018-02-04 23:13:47 · 130 阅读 · 0 评论 -
98. Validate Binary Search Tree
class Solution {public: bool isValidBST(TreeNode* root) { return isValidBST(root,INT_MIN - 1l,INT_MAX + 1l); } bool isValidBST(TreeNode* &root,long int pre,long int after) {原创 2018-02-04 20:42:30 · 112 阅读 · 0 评论 -
leetcode96. Unique Binary Search Trees
class Solution {public: int numTrees(int n) { if(n==0) return 0; vector result(n+1); for(int i=0;i result.push_back(1); } resu原创 2018-02-04 14:48:38 · 128 阅读 · 0 评论 -
leetcode95. Unique Binary Search Trees II
class Solution {public: vector generateTrees(int n) { vector forest; if(n==0) return forest; forest = generateTrees(1,n); return forest; } v原创 2018-02-04 13:57:16 · 225 阅读 · 0 评论 -
leetcode94. Binary Tree Inorder Traversal
1.递归算法/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {}原创 2018-02-04 00:29:47 · 116 阅读 · 0 评论 -
leetcode93. Restore IP Addresses
class Solution {public: vector restoreIpAddresses(string s) { vector result; restoreSegments(result,"",0,s); return result; } void原创 2018-02-03 21:13:07 · 123 阅读 · 0 评论 -
92. Reverse Linked List II
class Solution {public: ListNode* reverseBetween(ListNode* head, int m, int n) { if(head==NULL) return head; ListNode* tail = head; ListNode* temp=new ListNode(0);原创 2018-01-26 16:04:51 · 110 阅读 · 0 评论 -
91. Decode Ways
class Solution {public: int numDecodings(string s) { vector dups(s.size()+1); int cursor = s.size() - 1; if(cursor dups[s.size()] = 1; for(;cursor>=0;原创 2018-01-26 14:11:19 · 120 阅读 · 0 评论 -
89. Gray Code
思路:查看下n=3,n=4时候的结果,发现规律可用递归方式做。class Solution {public: vector grayCode(int n) { vector result; if(n result.push_back(0); return result; } vector r原创 2018-01-18 11:42:50 · 231 阅读 · 0 评论 -
112. Path Sum
class Solution {public: bool hasPathSum(TreeNode* root, int sum) { if(root==NULL) return false; if(root->left==NULL && root->right==NULL){ if(sum == ...原创 2018-03-07 14:30:39 · 129 阅读 · 0 评论 -
113. Path Sum II
class Solution {public: vector<vector<int>> pathSum(TreeNode* root, int sum) { vector<vector<int>> result; vector<int> temp; pathSum(root,sum,temp...原创 2018-03-07 14:56:10 · 104 阅读 · 0 评论 -
122. Best Time to Buy and Sell Stock II
class Solution {public: int maxProfit(vector<int>& prices) { int maxPos = prices.size() - 1; if(maxPos < 0 ) return 0; int maxTemp = 0 ;//短线的上升沿最大值...原创 2018-03-14 16:30:47 · 126 阅读 · 0 评论 -
121. Best Time to Buy and Sell Stock
class Solution {public: int maxProfit(vector<int>& prices) { vector<vector<int>> maxProfits(prices.size(),vector<int>(2,0)); int maxPos = prices.size() - 1...原创 2018-03-14 15:18:13 · 133 阅读 · 0 评论 -
leetcode120. Triangle
class Solution {public: int minimumTotal(vector<vector<int>>& triangle) { if(triangle.size()<=0) return 0; int k = triangle.size() - 1; vector<int> res...原创 2018-03-13 16:35:54 · 169 阅读 · 0 评论 -
leetcode119. Pascal's Triangle II
class Solution {public: vector<int> getRow(int rowIndex) { vector<int> result(rowIndex+1); int cursor = 1; result[0] = 1; int smallCursor = 1; ...原创 2018-03-13 15:41:36 · 159 阅读 · 0 评论 -
leetcode118. Pascal's Triangle
class Solution {public: vector<vector<int>> generate(int numRows) { vector<vector<int>> result; if(numRows<=0) return result; result.push_bac...原创 2018-03-13 14:03:58 · 132 阅读 · 0 评论 -
117. Populating Next Right Pointers in Each Node II
class Solution {public: void connect(TreeLinkNode *root) { if(root==NULL) return ; TreeLinkNode *start = root; TreeLinkNode *rootcur = start; TreeLinkNode *tail=NULL; ...原创 2018-03-13 12:07:32 · 107 阅读 · 0 评论 -
116. Populating Next Right Pointers in Each Node
class Solution {public: void connect(TreeLinkNode *root) { if(root==NULL) return ; TreeLinkNode *start = root; TreeLinkNode *cur = start; while(start){ cur =...原创 2018-03-13 12:06:41 · 127 阅读 · 0 评论 -
108. Convert Sorted Array to Binary Search Tree
class Solution {public: TreeNode* sortedArrayToBST(vector<int>& nums) { if(nums.size()<=0) return NULL; return sortedArrayToBST(nums,0,nums.size()-1); } TreeNode* s...原创 2018-02-25 16:15:27 · 121 阅读 · 0 评论 -
leetcode107. Binary Tree Level Order Traversal II
class Solution {public: vector<vector<int>> levelOrderBottom(TreeNode* root) { int depth = 0; getDepth(root,0,depth); vector<vector<int>> result(depth);...原创 2018-02-25 15:38:13 · 117 阅读 · 0 评论 -
leetcode106. Construct Binary Tree from Inorder and Postorder Traversal
class Solution {public:TreeNode* buildTree(vector<int>& inorder, vector<int>& postorder) {int postLength = postorder.size(); int inLength = inorder.size(); return bu...原创 2018-02-25 15:37:26 · 155 阅读 · 0 评论 -
leetcode115. Distinct Subsequences
class Solution {public: int numDistinct(string s, string t) { if(t.size()<=0) return 1; if((s.size()<=0 && t.size()>0) || s.size()<t.size()){ return 0; ...原创 2018-03-08 19:32:09 · 168 阅读 · 0 评论 -
leetcode125. Valid Palindrome
class Solution {public: bool isPalindrome(string s) { int head = 0; int tail = s.size() - 1; if(tail<0) return true; while(head<=tail){ if(!((s[head]>...原创 2018-03-14 19:11:37 · 130 阅读 · 0 评论 -
123. Best Time to Buy and Sell Stock III
class Solution {public: int maxProfit(vector<int>& prices) { vector<vector<int>> maxProfits(prices.size(),vector<int>(2,0)); int maxPos = prices.si...原创 2018-03-14 18:49:00 · 118 阅读 · 0 评论 -
114. Flatten Binary Tree to Linked List
class Solution {public: void flatten(TreeNode* root) { if(root==NULL) return ; flattenTree(root); } TreeNode* flattenTree(TreeNode* root) { if(root==NULL) return NULL; ...原创 2018-03-07 15:39:30 · 139 阅读 · 0 评论 -
leetcode 105.Construct Binary Tree from Preorder and Inorder Traversal
class Solution {public: TreeNode* buildTree(vector<int>& preorder, vector<int>& inorder) { int preLength = preorder.size(); int inLength = inorder.size(); ...原创 2018-02-25 15:29:24 · 124 阅读 · 0 评论