我有一个问题,需要找到数组中两个不同元素之间的最大距离。
例如:给定数组4,6,2,2,6,6,4
,该方法应返回5
作为最大距离。
我能够使用两个for循环解决这个问题,但这并不是一种优化的解决方案。我正在试图通过在单个for循环中完成它来进行优化。
这是我的当前解决方案:
int [] A = {4,6,2,2,6,6,4};
int N = A.length;
int result = 0;
for (int i = 0; i < N; i++){
for (int j = i; j < N; j++) {
if(A[i] != A[j]){
result = Math.max(result, j - i);
}
}
}
// tried below code but it is not efficient
// for (int i = 0; i < N; i++){
//
// if(A[N-1] != A[i]){
// result = Math.max(result, N-1-i);
// }
// }
System.out.println(result);
如何在时间复杂度方面改进这个方法?