题解 | #牛牛的三元组问题#
牛牛的三元组问题
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; } };