@@ -0,0 +1,1457 @@
+public class Solution %7B%0A    private class pair %7B%0A        int x;%0A        int y;%0A        public pair(int x, int y) %7B%0A            this.x = x;%0A            this.y = y;%0A        %7D%0A    %7D%0A    %0A    public List%3CList%3CInteger%3E%3E fourSum(int%5B%5D num, int target) %7B%0A        Map %3CInteger, List%3Cpair%3E%3E pairsMap = new HashMap%3C%3E ();%0A        Set%3CList%3CInteger%3E%3E results = new HashSet%3C%3E();%0A        %0A        for(int i=0; i%3Cnum.length; i++) %7B%0A            for(int j=i+1; j%3Cnum.length; j++) %7B%0A                int sum = num%5Bi%5D + num%5Bj%5D;%0A                List%3Cpair%3E pairs = pairsMap.get(sum);%0A                if (pairs == null) %7B%0A                    pairs = new ArrayList%3C%3E ();%0A                    pairsMap.put(sum, pairs);%0A                %7D%0A                pairs.add(new pair(i, j));%0A                %0A                pairs = pairsMap.get(target-sum);%0A                if (pairs == null) %7B%0A                    continue;%0A                %7D%0A                for(pair p: pairsMap.get(target-sum)) %7B%0A                    if(p.x != i && p.x != j && p.y != i && p.y != j) %7B%0A                        List %3CInteger%3E l = new ArrayList();%0A                        l.add(num%5Bi%5D);%0A                        l.add(num%5Bj%5D);%0A                        l.add(num%5Bp.x%5D);%0A                        l.add(num%5Bp.y%5D);%0A                        Collections.sort(l);%0A                        results.add(l);%0A                    %7D%0A                %7D%0A            %7D%0A        %7D%0A        %0A        return new ArrayList(results);%0A    %7D%0A%7D%0A

Create 4Sum.java