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;
}
}