原题链接:https://leetcode.com/problems/3sum/description/
意思是对给定的数组找到所有三个数加起来为0的数的下标
我的实现:
class Solution { public: vector<vector<int>> threeSum(vector<int>& nums) { int size = nums.size(); vector<vector<int>> result; sort(nums.begin(), nums.end()); for (int i = 0; i < size; i++) { if (nums[i] > 0) break; if (i > 0 && nums[i] == nums[i - 1]) continue; int start = i + 1; int end = size - 1; while (start < end) { if (nums[i] + nums[start] + nums[end] == 0) { vector<int> item; item.push_back(nums[i]); item.push_back(nums[start]); item.push_back(nums[end]); result.push_back(item); while (start < end && nums[start] == nums[start + 1]) start++; while (start < end && nums[end] == nums[end - 1]) end--; start++; end--; } else if (nums[i] + nums[start] + nums[end] < 0) { start++; } else { end--; } } } return result; } };