posted @ 2014-01-12 12:03 1957 阅读(134) 评论(0) 推荐(0)
摘要:
简单题/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public: vector > levelOrder(TreeNode *root) { vector > ans; if(root == nullptr) retur... 阅读全文
摘要:
和I一样的。。。不过只输出可能数感觉。。。可能有优化吧。。但是用I的代码过了。。。class Solution {public: bool col[100]; bool d1[100]; // i + j bool d2[100]; // i - j + n int ans; void nque( int n , int dep) { if(dep >= n) { ans ++; return ; } for(int i = 0 ; i < n ; i++... 阅读全文
posted @ 2014-01-11 22:25 1957 阅读(190) 评论(0) 推荐(0)
摘要:
八皇后,学递归入门题判重复的技巧,就是对角线x+y , x-y这样判断两个对角线了,把二维坐标压缩到一维,方便点。。class Solution {public: bool col[100]; bool d1[100]; // i + j bool d2[100]; // i - j + n int cnt[100]; void nque(vector >& ans , int n , int dep) { if(dep >= n) { vector xx(n); for(int i = 0 ; i... 阅读全文
posted @ 2014-01-11 22:22 1957 阅读(246) 评论(0) 推荐(0)
摘要:
O(m+n)其实很简单的,记录列行,有木有0就好了如果是O(1),那么我们就随便找个0所在的列,行当做我们之前那两个数组嘛。。。class Solution {public: void setZeroes(vector > &matrix) { int m = matrix.size(); if(m < 1) return ; int n = matrix.front().size(); //found first zero int row = -1 , col = -1;; for(i... 阅读全文
posted @ 2014-01-11 22:08 1957 阅读(1508) 评论(0) 推荐(0)
摘要:
每个string sort。。。然后这个作为group的keyclass Solution {public: vector anagrams(vector &strs) { unordered_map >group; for(int i = 0 ; i ans; for(auto it = group.begin() ; it != group.end() ; it++) { if(it -> second.size() > 1) ans.insert(ans.end() , it->second... 阅读全文
posted @ 2014-01-10 22:17 1957 阅读(121) 评论(0) 推荐(0)
摘要:
= =开始想乘个矩阵啥的就转啦。。。结果说in-place...那就按对角线翻转,在上下翻转吧。。。class Solution {public: void rotate(vector > &matrix) { int n = matrix.size(); if(n <= 1) return ; for(int i = 0 ; i < n ; i++) { for(int j = 0 ; j < n - i; j++) { swap(matrix[i][j] , matrix[n... 阅读全文
posted @ 2014-01-10 21:34 1957 阅读(567) 评论(0) 推荐(0)
摘要:
想用递归。。。结果感觉有点麻烦。。。那要么就用stl的next_permutation吧,,,不过这样好没意思。。。还是自己实现吧。。。class Solution {public: bool next_per(vector& num) { int size = num.size(); if(size 0 && num[idx] 0) { idx --; int maxr = size - 1; while(num[maxr] > permuteUnique(vector &num) { ... 阅读全文
posted @ 2014-01-10 20:56 1957 阅读(232) 评论(0) 推荐(0)
摘要:
dfs枚举class Solution {public: unordered_set st; void search(vector &num , vector > &ans , vector& tmp , int dep ,int size) { if(dep >= size) { ans.push_back(tmp); return ; } for(int i = 0 ; i > permute(vector &num) { sort(num.begin() ,... 阅读全文
posted @ 2014-01-10 19:50 1957 阅读(694) 评论(0) 推荐(0)
摘要:
大数乘法..写的有点复杂...class Solution {public: string multiply(string num1, string num2) { int size1 = num1.size(); int size2 = num2.size(); vector n1(size1,0); vector n2(size2,0); vector n3(size1+size2+2 , 0); reverse(num1.begin() , num1.end()); r... 阅读全文
posted @ 2014-01-10 15:02 1957 阅读(232) 评论(0) 推荐(0)
摘要:
扫描leftmost和rightmostclass Solution {public: int trap(int A[], int n) { if(n left(n , 0); vector right(n , 0); //left most for(int i = 1 ; i = 0 ; i--) { right[i] = max(right[i + 1] , A[i+1]); } int sum = 0; for(int i = 0 ; i A[... 阅读全文
posted @ 2014-01-10 14:10 1957 阅读(146) 评论(0) 推荐(0)
浙公网安备 33010602011771号