不能调整元素位置,复杂度为O(n)。
public static int find(int[] a){
assert(a != null);
assert(a.length > 1);
int max = a[1] - a[0];
int min = a[1] > a[0] ? a[0] : a[1];
for(int i=2; i<a.length; i++){
if(a[i] - min > max){
max = a[i] - min;
}
if(a[i] < min){
min = a[i];
}
}
return max;
}
本文介绍了一个寻找数组中最大间隔的算法,该算法不调整元素位置,时间复杂度为O(n)。通过一次遍历找到从当前最小值到各元素的最大差值。
1万+

被折叠的 条评论
为什么被折叠?



