https://oj.leetcode.com/problems/3sum/
Public class solution { public list<list<integer>> threesum (Int[] num) { // solution a // return threesum_sort (num); // solution b return threesum_map ( NUM); } //////////////////// // solution a: sort // // o (n^2) private list<list<integer>> threesum_sort (Int[] numbers) { Set<List<Integer>> Toreturn = new HashSet<> (); // sort arrays.sort (Numbers); int len = numbers.length; for (int i = 0 ; i < len ; i ++) { // Fix i. // move index j from i -> len // index k from len to i; int j = i + 1; int k = len - 1; while (j < k) { int sum = numbers[i] + numbers[ j] + numbers[k]; if (sum == 0) { List<Integer> r = new ArrayList<> (); r.add (numberS[i]); r.add (Numbers[j]); r.add (Numbers[k]); toreturn.add (R); j ++; k --; } else if (sum > 0) { k --; } else { j ++; } } } return new arraylist <List<Integer>> (Toreturn); } // Solution A: Map // // o (n^2) private List<List<Integer>> Threesum_map (Int[] num) { Set< List<integer>> toreturn = new hashset<> (); map<integer, integer> map = new HashMap<> ( int len =); num.length; for (int i = 0 ; i < len ; i ++) { map.put (num[i], i); } for (int i = 0 ; i < len ; i ++) { for (int j = i + 1 ; j < len ; j ++) { int sum = num[i] + num[j]; integer pos = map.get (-sum); if (POS != null) &NBSP;&&Amp; (POS&NBSP;!=&NBSP;I&NBSP;&&&NBSP;POS&NBSP;!=&NBSP;J)) // a result found. { List<integer> r = new arraylist<integer> (); r.add (Num[i]); r.add (Num[j]); r.add (-sum); collections.sort (R); toreturn.add (R); } } } return new ArrayList<List<Integer>> (Toreturn); } //////////////////// // solution a: brute force // // Assume num.length >= 3 private List<List<Integer> > threesum_bruteforce (Int[] num) { Set<List<Integer>> toReturn = new HashSet<> (); int len = num.length; for (int i = 0 ; i < len ; i ++) { for (int j = i + 1 ; j < len ; j ++) { for (int k = j + 1 ; k < len ; k ++) { if (num[i] + num[j] + num[k] == 0) { List<Integer> r = new ArrayList<Integer> (Arrays.aslist (num[i ],&NBSP;NUM[J],&NBSP;NUM[K]); collections.sort (R); toreturn.add (R); } } } } return new arraylist<list< Integer>> (Toreturn); }}
[Leetcode]15 3Sum