March 31, 2013
-
呢個post, 係用黎恥笑自己submit左個order n^5既code
過large judge timeout連寫呢D唔洗algorithm既code都搞左咁耐-.-
唔stackoverflow下真係唔知有D咁既方法compare兩條ArrayList係咪一樣
聽日再諗過個醒少少既algorithmsum of 3 numbers
http://leetcode.com/onlinejudge#question_15
public ArrayList<ArrayList<Integer>> threeSum(int[] num) {
ArrayList<ArrayList<Integer>> result = new ArrayList<ArrayList<Integer>>();
Arrays.sort(num);
for (int i = 0; i < num.length; i++){
for (int j = i+1; j < num.length; j++){
for (int k = j+1; k < num.length; k++){
if ((num[i] + num[j] + num[k]) == 0){
ArrayList<Integer> list = new ArrayList<Integer>();
list.add(num[i]); list.add(num[j]); list.add(num[k]);
Boolean repeated = false;
for (int m = 0; m < result.size(); m++){
List<Integer> added = new ArrayList<Integer>(result.get(m));
added.removeAll(list);
if (added.size () == 0) repeated = true;
}
if (!repeated) result.add(list);
}
}
}
}
return result;
}
Recent Comments