陣列相鄰兩數最大差值

2021-09-28 16:11:30 字數 751 閱讀 5388

思路:因為要求時間複雜度為o(n)且不能用非比較排序,常用的比較排序很難做到o(n)。這裡是借助n+1個桶,將n個數平均分配到n個桶裡,所以我們所求的最大差值肯定不在乙個桶內(只有乙個數另說),然後依次求出當前桶最小值前乙個非空桶最大值的差值,求出最大的差值就是我們要的結果。

static class tong 

public static int method(int arr)

int max = integer.min_value, min = integer.max_value;

for (int i = 0; i < arr.length; i++)

for (int i = 0; i < arr.length; i++)

int result = 0;

tong before = help[0];

for (int i = 1; i < help.length; i++)

int temp = help[i].min - before.max;

result = result > temp ? result : temp;

before = help[i];

}return result;

}private static int insert(int num, int length, int max, int min)

相鄰兩數最大差值

有乙個整形陣列a,請設計乙個複雜度為o n 的演算法,算出排序後相鄰兩數的最大差值。給定乙個int陣列a和a的大小n,請返回最大的差值。保證陣列元素多於1個。測試樣例 1,2,5,4,6 5返回 2 基於桶排序的思想完成,不考慮兩個相同的桶內的差值,只考慮該桶的最小值減去上乙個桶的最大值,最大的就是...

相鄰兩數最大差值

有乙個整形陣列a,請設計乙個複雜度為o n 的演算法,算出排序後相鄰兩數的最大差值。給定乙個int陣列a和a的大小n,請返回最大的差值。保證陣列元素多於1個。測試樣例 1,2,5,4,6 5返回 2 解析 使用bucket排序思想,把大小為n的陣列分成 max min n個區間,顯然這個區間是1 n...

相鄰兩數最大差值

有乙個整形陣列a,請設計乙個複雜度為o n 的演算法,算出排序後相鄰兩數的最大差值。給定乙個int陣列a和a的大小n,請返回最大的差值。保證陣列元素多於1個。測試樣例 1,2,5,4,6 5 返回 2 要求演算法複雜度為o n 一般的比較排序演算法是做不到的,這用到了桶排序的思想,思路首先尋找整個陣...