题解 | #牛牛的三元组问题#
牛牛的三元组问题
https://www.nowcoder.com/practice/72c6d735fb1144a2ba162976a4510839
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param nums int整型vector
* @return int整型vector<vector<>>
*/
vector<vector<int> > result;
vector<int> path;
int pathSum = 0;
void backTrack(vector<int>& nums, int start, int end){
if(path.size() == 3 && pathSum == 0){
result.push_back(path);
return;
}
for(int i = start; i < end; i++){
if(i > start && nums[i] == nums[i-1]) continue;
pathSum += nums[i];
path.push_back(nums[i]);
backTrack(nums, i + 1, end);
pathSum -= path.back();
path.pop_back();
}
}
vector<vector<int> > findTriplets(vector<int>& nums) {
sort(nums.begin(), nums.end());
backTrack(nums, 0, nums.size());
return result;
}
};
查看8道真题和解析