67,515
社区成员
发帖
与我相关
我的任务
分享
n = arr.length;
for(int i=0; i<n; i++) {
for(int j=i+1; j<n; j++) {
if(arr[i] + arr[j] == key) return true;
}
}
纯算法,不用MAP/SET等数据结构,时间复杂度为N减1后的阶加:O((n-1)~) private static boolean find(int[] a, int key) {
Set<Integer> set = new HashSet<>();
for(int x:a) {
set.add(x);
}
boolean result = false;
for(int i = 1; i<key/2; i++) {
if(set.contains(i) && set.contains(key-i)) {
result = true;
break;
}
}
return result;
}
for(int i:data){
if(list.contains(String.valueOf(key-i))){
return true;
}
}