摘要:
1 2 3 4 5 5 2 3 4 1 4 2 3 5 1 3 2 4 5 1 2 3 4 5 1 发现排列到最后最后一个数字是不变的,当然这和交换顺序有关,所以在判断的时候要选择不变的每次递归最后的数字判断! 阅读全文
摘要:
// 重复元素在去重的时候会出现顺序不同去不了重,这时候需要对add进行排序class Solution { public: vector> subsetsWithDup(vector& nums) { vector> res; vector add; for(int i=0;i > gg(res.begin(),res.end()); ... 阅读全文
摘要:
//这题感觉不如前两题回溯清楚,还要再看看class Solution { public: vector generateParenthesis(int n) { vector res; string add; DFS(res,add,n,n); return res; } void DFS(vec... 阅读全文
摘要:
//狂练回溯,巧用备胎class Solution { public: vector letterCombinations(string digits) { vector res; if(digits == "") return res; string add; DFS(res,add,digits,0); ... 阅读全文
摘要:
//这是我写过最难的递归了。。。//class Solution { public: bool exist(vector>& board, string word) { int m = board.size(); int n = board[0].size(); for(int i=0;i >& board,string word,int ... 阅读全文
摘要:
//和77类似的问题,可以放在一起记忆class Solution { public: vector> subsets(vector& nums) { vector> res; vector add; res.push_back(add); for(int i=1;i >& res,vector &add,vector& n... 阅读全文
摘要:
//这似乎是排列组合的标准写法了已经class Solution { public: vector> combine(int n, int k) { vector> res; vector add; DFS(res,k,n,add,0); return res; } void DFS(vector>... 阅读全文
摘要:
- 定义red指针指向开头位置,blue指针指向末尾位置 - 从头开始遍历原数组,如果遇到0,则交换该值和red指针指向的值,并将red指针后移一位。若遇到2,则交换该值和blue指针指向的值,并将blue指针前移一位。若遇到1,则继续遍历。 阅读全文
摘要:
class Solution { public: bool searchMatrix(vector>& matrix, int target) { int m = matrix.size(); if(!m) return false; int n = matrix[0].size(); if(!n) return false... 阅读全文
摘要:
class Solution { public: void setZeroes(vector>& matrix) { vector> store; int m = matrix.size(); int n = matrix[0].size(); for(int i=0;i temp; ... 阅读全文