Advertisement
ogv

Untitled

ogv
Sep 2nd, 2019
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.35 KB | None | 0 0
  1. // Runtime: 842 ms, faster than 5.01% of Java online submissions for 3Sum.
  2. // Memory Usage: 48.1 MB, less than 82.68% of Java online submissions for 3Sum.
  3.  
  4. class Solution {
  5.     public List<List<Integer>> threeSum(int[] nums) {
  6.         List<List<Integer>> results = new ArrayList<List<Integer>>();
  7.        
  8.         Arrays.sort(nums);
  9.        
  10.         for (int i = 0; i < nums.length; i++)
  11.             for (int j = i + 1; j < nums.length - 1; j++) {
  12.                 int bsr = Arrays.binarySearch(nums, j + 1, nums.length, -nums[i] - nums[j]);
  13.                
  14.                 if (bsr >= 0) {
  15.                     boolean needsAdding = true;
  16.                     for (int r = 0; r < results.size(); r++) {
  17.                         if ((results.get(r).get(0) == nums[i]) && (results.get(r).get(1) == nums[j])) {
  18.                             needsAdding  = false;
  19.                             break;
  20.                         }
  21.                     }
  22.                     if (needsAdding) {
  23.                         List<Integer> result = new ArrayList<Integer>();
  24.                         result.add(nums[i]);
  25.                         result.add(nums[j]);
  26.                         result.add(nums[bsr]);
  27.  
  28.                         results.add(result);
  29.                     }
  30.                 }                    
  31.             }
  32.        
  33.         return results;
  34.     }
  35. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement