【发布时间】:2017-06-06 05:46:51
【问题描述】:
public static void findNumber(int number) {
int[] soretedArray = { 1, 5, 6, 8, 9 };
for (int i = 0; i <= soretedArray.length; i++) {
for (int j = i + 1; j < soretedArray.length; j++) {
if (soretedArray[i] + soretedArray[j] == number) {
System.out.println(soretedArray[i] + "::" + soretedArray[j]);
return;
}
}
}
}
使用此代码,我能够找到数字,其复杂度为 O(N^2),但我必须使用 O(N) 复杂度来找到它,即在 Java 中仅使用一个 for 循环或哈希映射或类似的。
【问题讨论】:
-
我从您的代码中得知,如果有多个解决方案,您只需要找到一个解决方案吗?
标签: java algorithm search big-o