leetcode_combination_sum_ii 发表于 2016-12-02 难度:Medium 解题思路:是CombinationSum系列。不重复使用元素就可以了。代码如下: 1234567891011121314151617181920212223242526272829class Solution {public: vector<vector<int>> combinationSum2(vector<int>& candidates, int target) { sort(candidates.begin(), candidates.end()); vector<vector<int>> ret; vector<int> cur_vec; combination_sum_recur(ret,candidates,target,0,cur_vec); return ret; } void combination_sum2_recur(vector<vector<int>> &ret, vector<int>& candidates, int target, int index, vector<int>& cur_vec) { if(target == 0) { ret.push_back(cur_vec); } else if(target > 0) { for(int i = index; i < candidates.size(); i++) { if(i-1 >= index && candidates[i-1] == candidates[i]) continue; cur_vec.push_back(candidates[i]); combination_sum_recur(ret,candidates,target-candidates[i],i+1,cur_vec); cur_vec.pop_back(); } } }}; 运行结果:16ms,超过36.98%