Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Solution {
- public:
- vector<vector<int>> threeSum(vector<int>& nums) {
- sort(nums.begin(), nums.end());
- int left, right, sum;
- vector<vector<int>> res;
- for(int i=0; i<nums.size(); i++){
- if(i > 0 && nums[i] == nums[i-1]) continue;
- sum = -nums[i];
- left = i+1;
- right = nums.size()-1;
- while(left < right){
- if(nums[left]+nums[right] > sum) right--;
- else if(nums[left]+nums[right] < sum) left++;
- else if(nums[left]+nums[right] == sum){
- res.push_back({nums[i], nums[left], nums[right]});
- while(left < nums.size()-1 && nums[left] == nums[left+1]) left++;
- while(right > i && nums[right] == nums[right-1]) right--;
- left++;
- right--;
- }
- }
- }
- return res;
- }
- };
Advertisement
Add Comment
Please, Sign In to add comment