您的位置:首页 > 其它

leetcode-39-Combination Sum

2017-07-24 18:27 281 查看

问题

题目:[leetcode-39]

思路

这个题目也是dfs,每一层扫描全部的数字。

但是,这个题目有一个限制它是组合,所以每一个元素必须是升序。

需要判断下。

代码

class Solution {
public:
vector<vector<int>> combinationSum(vector<int>& candidates, int target) {
vector<int> arr;
vector< vector<int> > ret;

dfs( candidates, target, 0, arr, ret );

return ret;

}
private:
void dfs( vector<int>& nums, int target, int cur, vector<int>& arr, vector< vector<int> >& ret){
if( cur == target ){
ret.push_back( arr );
}

if( cur > target )
return;

int sz = nums.size();
for(int i = 0; i < sz; ++i){
if( arr.size() > 0 && arr.back() > nums[i] ) continue;

arr.push_back( nums[i] );
dfs( nums, target, cur + nums[i], arr, ret );
arr.pop_back();
}
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: