class Solution {
public:
vector<vector<int>> fourSum(vector<int>& nums, int target) {
vector<vector<int>> result;
vector<int> tempresult;
sort(nums.begin(),nums.end()); // 排序
Search(nums,target,0,4,tempresult,result);
return result;
}
void Search(vector<int>& nums,int target,int start,int count,vector<int> &tempresult,vector<vector<int>> &result){
if(target==0&&count==0){
// 剩余需要值为零,剩余需要个数为零(结果ok)
result.push_back(tempresult);
return;
}
if(count==0) return; // 剩余个数为零了 ,还没找到,个数超过了,结束
for(int i=start;i<nums.size();i++){
if((nums[i]>target&&nums[i]>0)) return;
if(i==start||nums[i]!=nums[i-1]){
tempresult.push_back(nums[i]);
Search(nums,target-nums[i],i+1,count-1,tempresult,result);
tempresult.pop_back();
}
}
}
};
LeetCode每日一题 (34) 18. 四数之和
猜你喜欢
转载自blog.csdn.net/qq_45021180/article/details/108955055
今日推荐
周排行