題目:
請設計乙個複雜度為o(n)的演算法,計算乙個未排序陣列中排序後相鄰元素的最大差值。
給定乙個整數陣列a和陣列的大小n,請返回最大差值。
**:/*designed by wyq
*分析:
* 這是乙個典型的利用桶排序求解問題,因為桶排序不少基於比較的排序可以打破nlogn的下限,
* 可以達到題目要求的複雜度n
* 相鄰兩個數差值最大 肯定大於平均值 平均值就是桶的長度 9,3,1,10
* 計算桶的長度
* length = (max-min)/(n-1)
* count = (max-min)/length+1; count=3 即[1,4)[4,7)[7,10)[10,13)
** */
public int findmaxdivision(int a, int n) {
int min = integer.max_value;
int max = integer.min_value;
int count = 0;
int length = 0;
for (int i = 0; i < n; i++) {
min = min>a[i]?a[i]:min;
max = maxmaxbucket[j]?a[i]:maxbucket[j];
minbucket[j]=a[i]
相鄰兩數最大差值
有乙個整形陣列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...
相鄰最大差值 桶排序
請設計乙個複雜度為o n 的演算法,計算乙個未排序陣列中排序後相鄰元素的最大差值。給定乙個整數陣列a和陣列的大小n,請返回最大差值。保證陣列元素個數大於等於2小於等於500。測試樣例 9,3,1,10 4返回 6 簡單題 使用sort進行排序,時間複雜度非o n coding utf 8 class...