Guest User

Untitled

a guest
Nov 22nd, 2017
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.98 KB | None | 0 0
  1. vector<vector<int>> threeSum(vector<int>& nums) {
  2. vector<vector<int>> result;
  3. if(nums.size()==0) return result;
  4. sort(nums.begin(), nums.end());
  5. for(int i = 0; i<nums.size(); ){
  6. int left = i+1;
  7. int right = nums.size() - 1;
  8. int target = -nums[i];
  9. while(left < right){
  10. if(nums[left] + nums[right] < target) {
  11. left += 1;
  12. } else if(nums[left]+nums[right] > target) {
  13. right -= 1;
  14. } else {
  15. result.push_back({nums[i], nums[left], nums[right]});
  16. left += 1;
  17. right -= 1;
  18.  
  19. while(nums[left]==nums[left-1]) {
  20. left += 1;
  21. }
  22.  
  23. while(nums[right]==nums[right+1]) {
  24. right -= 1;
  25. }
  26. }
  27. }
  28.  
  29. i += 1;
  30. while(nums[i]==nums[i-1]) {
  31. i += 1;
  32. }
  33. }
  34.  
  35. return result;
  36. }
Add Comment
Please, Sign In to add comment