1957

无聊蛋疼的1957写的低端博客
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 22 下一页

2014年1月10日

摘要: 和上一题差不多class Solution {public: void search(vector >& ans , vector& tmp ,vector &candidates , int target , int sum , int start) { if(sum > target) return; if(sum == target) { ans.push_back(tmp); return ; } int prev = -1; for(int i = start ;... 阅读全文

posted @ 2014-01-10 13:40 1957 阅读(121) 评论(0) 推荐(0) 编辑

摘要: 裸的dfsclass Solution {public: void search(vector >& ans , vector& tmp ,vector &candidates , int target , int sum , int start) { if(sum > target) return; if(sum == target) { ans.push_back(tmp); return ; } for(int i = start ; i > combination... 阅读全文

posted @ 2014-01-10 11:24 1957 阅读(136) 评论(0) 推荐(0) 编辑

摘要: 桶排序class Solution {public: int firstMissingPositive(int A[], int n) { for (int i = 0 ; i 0 && A[i] <= n && A[i] != A[A[i] -1]) swap(A[i] , A[A[i]-1]); } for (int i = 0 ; i < n ; i++) if(A[i] != i + 1) return i + 1; return n + 1... 阅读全文

posted @ 2014-01-10 10:59 1957 阅读(108) 评论(0) 推荐(0) 编辑

摘要: 按照说明模拟。。。stringstream挺好用的class Solution {public: string count(const string& now) { stringstream ss; int i = 0; int size = now.size(); int prev = -1; while(i < size) { while(i + 1< size && now[i] == now[i + 1]) i++; ss << (i - prev) << now[i];... 阅读全文

posted @ 2014-01-10 00:17 1957 阅读(137) 评论(0) 推荐(0) 编辑

2014年1月9日

摘要: valid rowvalid colvalid blockclass Solution {public: bool isValidSudoku(vector > &board) { unordered_set vis; //valid row for(int i = 0 ; i = '1' && board[i][j] = '1' && board[j][i] = '1' && board[i + row][j + col] <= '9' && v 阅读全文

posted @ 2014-01-09 15:09 1957 阅读(115) 评论(0) 推荐(0) 编辑

摘要: 裸的lower_bound, upper_bound的实现...还有点晕,等下看...边界调来调去的过了...看来正确实现二分真不容易class Solution {public: int low(int A[] , int start , int end , int target) { int l = 0; int r = end; while(l searchRange(int A[], int n, int target) { vector ans; if(n <= 0) return ans; ... 阅读全文

posted @ 2014-01-09 14:49 1957 阅读(148) 评论(0) 推荐(0) 编辑

摘要: 有人用了很复杂的讨论-,-我感觉我是考虑不了那么多。。那么我先二分找到那个分割点,然后。。。分两段来二分找class Solution {public: int bs(int A[] , int start , int end , int target){ int l = sta... 阅读全文

posted @ 2014-01-09 00:45 1957 阅读(160) 评论(0) 推荐(0) 编辑

2014年1月8日

摘要: = =每行放一起,就是一个一维的数组,而且是递增的。。那用二分就好啦。。class Solution {public: pair toXY(int i , int row , int col){ int x = i / col; int y = i % col; return make_pair(x,y); } int getEle(const vector > &matrix , int i){ pair xy = toXY(i , matrix.size() , matrix.front().size... 阅读全文

posted @ 2014-01-08 23:27 1957 阅读(119) 评论(0) 推荐(0) 编辑

摘要: 就是做个扫描,能匹配的算下多长,如果不能匹配.就继续从后开始.class Solution {public: int longestValidParentheses(string s) { stack st; int last = -1; int maxlen = 0; for(int i = 0 ; i < s.size() ; i++) { if(s[i] == '(') st.push(i); else{ if(st.empty()){ ... 阅读全文

posted @ 2014-01-08 21:36 1957 阅读(412) 评论(0) 推荐(0) 编辑

摘要: 下一排列TAT从右往左找到第一个非增的位置,也就是找到最右递减的开始位置的前一个。定位这个。然后又从右往左找比这个数大的。。。交换着两个数。。然后reverse之前的递减序列。。。因为递减序列就木有next permutation了。。所以找到最右的递减序列那么前面那个肯定是要用比他大的代替啦,再反转递减序列,就是next permutation了class Solution {public: void nextPermutation(vector &num) { int end = num.size() - 1; int povit = end; ... 阅读全文

posted @ 2014-01-08 20:50 1957 阅读(1894) 评论(0) 推荐(0) 编辑

上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 22 下一页