超时的代码,我不咋会优化,请大神指教
class Solution {
public static List<List<Integer>> threeSum(int[] nums) {
List<List<Integer>> numsR = new ArrayList<List<Integer>>();
List<Integer> intList;
int zeroSign = 0;
for(int i = 0 ;i < nums.length ;i++) {
for(int j = 0 ; j < i ; j ++) {
for(int k = 0 ; k < j ; k++ ) {
if(nums[i]+nums[j]+nums[k]==0) {
intList = new ArrayList<Integer>();
intList.add(nums[i]);
intList.add(nums[j]);
intList.add(nums[k]);
if(nums[i]==0&&nums[j]==0&&nums[k]==0&&zeroSign==0) {
numsR.add(intList);
zeroSign+=1;
continue;
}
if(hasEqual(numsR, intList)) continue;
else {
numsR.add(intList);
}
}
}
}
}
return numsR;
}
public static boolean hasEqual(List<List<Integer>> basic , List<Integer> list) {
Iterator<List<Integer>> listinfo = basic.iterator();
List<Integer> buffer ;
while(listinfo.hasNext()) {
buffer = listinfo.next();
if(buffer.containsAll(list)) return true;
}
return false;
}
}