首页 > 学院 > 开发设计 > 正文

216. Combination Sum III

2019-11-06 07:53:55
字体:
来源:转载
供稿:网友

挺好做的,现在对于这种递回的题目非常的熟悉了,因为有套路。这里给赋值,而后要把赋值还原。

class Solution {public: void combine(int k,int n,vector<int>& temp,vector<int>& visit, vector<vector<int>>& result) { if(k==1) { if(n>=1&&n<=9&&visit[n]==0&&(temp.empty()||temp.back()<n)) { temp.push_back(n); result.push_back(temp); temp.pop_back(); } } else { for(int i=1;i<=9;i++) { if(visit[i]==0&&(temp.empty()||temp.back()<i)) { temp.push_back(i); visit[i]=1; combine(k-1,n-i,temp,visit,result); visit[i]=0; temp.pop_back(); } } } return; } vector<vector<int>> combinationSum3(int k, int n) { vector<vector<int>> result; vector<int> visit(10,0); vector<int> temp; combine(k,n,temp,visit,result); return result; }};
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表