【发布时间】:2018-05-09 18:33:40
【问题描述】:
我试图在整数的零索引数组中找到两个相等元素的索引之间的最大差异。
我的 for 循环目前看起来像这样,具有“嵌套 for 循环”结构 这意味着它的时间复杂度是 O(N^2)。
是否有可能将其时间复杂度降低到 O(N * log(N)) 或更低?
public static Integer solution(Integer[] arr) {
Integer l = arr.length;
int result = 0;
for (int i = 0; i < l; i++) {
for (int j = 0; j < l; j++) {
if (arr[i] == arr[j]) {
result = Math.max(result, Math.abs(i - j));
}
}
}
return result;
}
【问题讨论】:
-
你想在这里达到什么目的?