See More

package array; import java.lang.reflect.Array; import java.util.*; /** * Created by Administrator on 2018/3/27 0027. */ public class fourSum { public static List> fourSum(int[] nums, int target) { List> result=new ArrayList<>(); int size=nums.length; if(size==0){ return result; } if(size<4){ int sum=0; for(int i=0;i ls=new ArrayList<>(); for(int i=0;i> map=new HashMap<>(); for(int i=0;i list=new ArrayList<>(); array[index] = nums[i] + nums[j]; if(!map.containsKey(array[index])) { list.add(i); list.add(j); map.put(array[index],list); } else { list=map.get(array[index]); list.add(i); list.add(j); map.put(array[index],list); } index++; } } Arrays.sort(array); int sum=0; int auxtarget=0; for(int i=0;i ls=map.get(auxtarget); ArrayList list1=(ArrayList)((ArrayList)ls).clone(); while (list1.size()>=2){ List list=new ArrayList<>(); if(list1.get(0)==i||list1.get(1)==j||list1.get(0)==j||list1.get(1)==i){ list1.remove(1); list1.remove(0); continue; } list.add(nums[list1.get(0)]); list.add(nums[list1.get(1)]); list.add(nums[i]); list.add(nums[j]); list1.remove(1); list1.remove(0); result.add(list); } } } } List> resultfinal=listquchong(result); return resultfinal; } public static List> listquchong(List> result){ List> resultfinal=new ArrayList<>(); HashMap,List> map=new HashMap<>(); for(List ls:result){ Set key=new HashSet<>(ls); if(!map.containsKey(key)){ map.put(key,ls); } } for(Map.Entry,List> entry:map.entrySet()) resultfinal.add(entry.getValue()); return resultfinal; } public static void main(String[] args) { int[] a={1,0,-1,0,-2,2}; List> s=fourSum(a,0); System.out.println(s); } public static int biSearch(int []array,int a){ int le=0; int ri=array.length-1; int mid; while(lea){ ri=mid-1; } else{ le = mid + 1; } } return -1; } }