LeetCode 2015.7.26 116,108,96,94,35,80,77,74,73
来源:互联网 发布:淘宝腰脱九块九包官网 编辑:程序博客网 时间:2024/06/05 08:26
LeetCode 2015.7.26 116,108,96,94,35,80,77,74,73116 Populating Next Right Pointers in Each Node1.class Solution {public: vector <TreeLinkNode*> next; void connect(TreeLinkNode *root) { depthSearch(root,0); next.clear(); } void depthSearch(TreeLinkNode* root,int depth) { if (root!=NULL) { // cout<<root->val<<" "<<depth<<endl; if (depth>=next.size()) { next.push_back(root); } else { TreeLinkNode* p = next[depth]; p->next = root; next[depth] = root; } depthSearch(root->left,depth+1); depthSearch(root->right,depth+1); } return ; }};2. 搜的解题报告class Solution {public: void connect(TreeLinkNode *root) { if (root == NULL) return ; if (root->next && root->right) root->right->next = root->next->left; if (root->left) root->left->next=root->right; connect(root->left); connect(root->right); }};108 Convert Sorted Array to Binary Search Treeclass Solution {public: TreeNode* sortedArrayToBST(vector<int>& nums) { if (nums.size()==0) return NULL; TreeNode* tmp = new TreeNode(0); if (nums.size() == 1) { tmp->val = nums[0]; return tmp; } else { int mid = nums.size()/2; tmp->val = nums[mid]; vector<int>nleft; vector<int>nright; nleft.clear();nright.clear(); for(int i=0;i<mid;i++) nleft.push_back(nums[i]); for(int i=mid+1;i<nums.size();i++) nright.push_back(nums[i]); tmp->left = sortedArrayToBST(nleft); tmp->right = sortedArrayToBST(nright); } return tmp; }};96 Unique Binary Search Treesclass Solution {public: int numTrees(int n) { vector<int> f; f.clear(); f.resize(n+2); f[0]=1; f[1]=1; f[2]=2; if (n<=2) return f[n]; for(int i=3;i<=n;i++) { f[i]=0; for(int j=0;j<i;j++) f[i]+=f[j]*f[i-j-1]; } return f[n]; }};94 Binary Tree Inorder Traversalclass Solution {public: vector<int> inorderTraversal(TreeNode* root) { vector<int> ans; if (root == NULL) return ans; stack<TreeNode*> s; TreeNode* T = root; while (T || !s.empty()) { while (T) { s.push(T); T=T->left; } T = s.top(); s.pop(); ans.push_back(T->val); T=T->right; } return ans; }};35 Search Insert Positionclass Solution {public: int searchInsert(vector<int>& nums, int target) { if (nums.size()==0) return 0; int left = 0, right = nums.size()-1; while (left<right) { int mid = left + (right-left) / 2; if (nums[mid] == target) return mid; if (nums[mid] > target) right = mid - 1; else left = mid + 1; } if (nums[left] >= target) return left; else return left+1; }};80 Remove Duplicates from Sorted Array II1.class Solution {public: int removeDuplicates(vector<int>& nums) { map<int,int> cnt; vector<int> ans; map<int,int>::iterator it; for(int i=0;i<nums.size();i++) { it = cnt.find(nums[i]); if (it!=cnt.end()) { if (it->second <2) { int tmpsecond = it->second + 1; cnt.erase(it); cnt.insert(pair<int,int>(nums[i],tmpsecond)); ans.push_back(nums[i]); } } else { cnt.insert(pair<int,int>(nums[i],1)); ans.push_back(nums[i]); } } nums.clear(); nums.resize(ans.size()); copy(ans.begin(),ans.end(),nums.begin()); return nums.size(); }};2.搜的思路class Solution {public: int removeDuplicates(vector<int>& nums) { if (nums.size()<3) return nums.size(); vector<int> ans; ans.push_back(nums[0]); ans.push_back(nums[1]); for(int i=2;i<nums.size();i++) { if (nums[i]!=nums[i-2]) ans.push_back(nums[i]); } nums.clear(); nums.resize(ans.size()); copy(ans.begin(),ans.end(),nums.begin()); return nums.size(); }};77 Combinationsclass Solution {public: vector<int> per; vector< vector<int> > ans; vector< vector<int> > combine(int n, int k) { ans.clear(); per.resize(k); generateCombine(n,k,1,0); return ans; } void generateCombine(int n, int k, int start , int index) { if (k==0) { ans.push_back(per); return ; } for(int i=start;i<=n;i++) { per[index] = i; generateCombine(n,k-1,i+1,index+1); } }};74 Search a 2D Matrix1.class Solution {public: bool searchMatrix(vector <vector<int> >& matrix, int target) { if (matrix.size()==0) return false; int row = matrix.size()-1; int col = matrix[0].size()-1; int left = 0,right = row, r; while (left < right) { int mid = left + (right - left) / 2; if (matrix[mid][col]>=target && matrix[mid][0]<=target) { r=mid;break; } if (matrix[mid][col]<target) left = mid + 1; else right=mid - 1; } if (left >= right) r = left; left = 0;right = col; while (left < right) { int mid = left+(right-left)/2; if (matrix[r][mid] == target) return true; if (matrix[r][mid] > target) right = mid - 1; else left = mid + 1; } if (matrix[r][left]==target) return true; else return false; }};2.搜的思路class Solution {public: bool searchMatrix(vector <vector<int> >& matrix, int target) { int row = matrix.size(), col = matrix[0].size(); int left = 0, right = row * col - 1; while (left <= right) { int mid = left +(right - left)/2; int r = mid / col, c = mid % col; if (matrix[r][c]==target) return true; if (matrix[r][c] < target) left = mid +1; else right = mid -1; } return false; }};73 Set Matrix Zeroes1.class Solution {public: void setZeroes(vector< vector<int> >& matrix) { int row = matrix.size(), col = matrix[0].size(); vector<int>c,r; int bitsize = 32; c.resize(10); r.resize(10); for(int i=0;i<row;i++) for(int j=0;j<col;j++) { if (matrix[i][j]==0) { int tmpr = i / bitsize, tmpc = j / bitsize; r[tmpr] = r[tmpr] | (1<<(i % bitsize + 1)); c[tmpc] = c[tmpc] | (1<<(j % bitsize + 1)); } } for(int i=0;i<row;i++) { int tmpr = i / bitsize; int tmp= 1<<(i%bitsize+1); if ((r[tmpr]&tmp) !=0) { for(int j=0;j<col;j++) matrix[i][j]=0; } } for(int i=0;i<col;i++) { int tmpc = i / bitsize; int tmp = 1<<(i%bitsize+1); if ((c[tmpc]&tmp) != 0) { for(int j=0;j<row;j++) matrix[j][i]=0; } } return ; }};2. 搜的思路class Solution {public: void setZeroes(vector< vector<int> >& matrix) { int row = matrix.size(), col = matrix[0].size(); bool col0=false; for(int i=0;i<row;i++) { if (matrix[i][0]==0) col0=true; for(int j=1;j<col;j++) { if (matrix[i][j]==0) { matrix[0][j]=0; matrix[i][0]=0; } } } for(int i=row-1;i>=0;i--) { for(int j=1;j<col;j++) { if (matrix[i][0]==0 || matrix[0][j]==0) matrix[i][j] = 0; } if (col0) matrix[i][0]=0; } }};
0 0
- LeetCode 2015.7.26 116,108,96,94,35,80,77,74,73
- Leetcode 94
- leetcode#94
- LeetCode-94
- leetcode 73
- LeetCode 73
- leetcode 73
- Leetcode#77||
- Leetcode 77
- leetcode 77
- leetcode 77
- LeetCode 74
- leetcode-35
- LeetCode 80
- Leetcode 26
- leetcode-26
- LeetCode #26
- LeetCode 2015.7.10 26,58,226
- LeetCode 2015.7.20 148,150,151,152,153,208,209,162,236
- Can't use "address" as an attribute in core data Entity
- LeetCode 2015.7.21-2015.7.24 144,141,136,137,129,22,238,122,121,24
- NSValue和NSNumber(OC的包装类)
- LeetCode 2015.7.25 125,28,169,155,7,160,1
- LeetCode 2015.7.26 116,108,96,94,35,80,77,74,73
- xss的那些有卵用和没有卵用(一)
- Android 的性能 V-保持APP的响应
- LeetCode 2015.7.27 64,62,59,466,48,53,113,16
- (0)Leap Motion简介
- LeetCode 2015.7.28-2015.8.3 50,49,55,120,199,63,40
- poj 1033 文件移动
- LeetCode 2015.8.6 17,216,131,215,230,34,92
- LeetCode 2015.8.7 173,75,39,78,82,90,103