1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
|
class Solution { public: vector<vector<int>> threeSum(vector<int>& nums) { vector<vector<int>> res; vector<int> num; sort(nums.begin(), nums.end()); for(int i = 0; i < nums.size(); i++) { int front = i+1; int end = nums.size() - 1; while(front < end) { if(nums[i] + nums[front] + nums[end] == 0) { num.push_back(nums[i]); num.push_back(nums[front]); num.push_back(nums[end]); res.push_back(num); while(front < end && nums[front] == num[1]) front++; while(front < end && nums[end] == num[2]) end--; num.clear(); } else if(nums[i] + nums[front] + nums[end] < 0) front++; else end--; while(i+1 <= nums.size() && nums[i+1] == nums[i]) i++; } } return res; } };
|
近期评论