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