相鄰兩數最大差值

2021-07-28 14:00:22 字數 651 閱讀 8481

有乙個整形陣列a,請設計乙個複雜度為o(n)的演算法,算出排序後相鄰兩數的最大差值。

給定乙個int陣列a和a的大小n,請返回最大的差值。保證陣列元素多於1個。

測試樣例:

[1,2,5,4,6],5
返回:2

牛課上的練習題,現在把**貼出來

class gap 

int dis = (max - min) / n; // 區間間隔

if (dis <= 0)

map> buck;

int pos;

for (int j = 0; j < n; j++)

//計算差值,當前桶的最小值-前乙個桶的最大值

int cmin, cmax;

int premax=max,gap=0;

for(i=0; i<=n; i++)

if(premax != max)

premax = cmax;

}return gap;

}};

利用的是桶排序的思想,先取出最大值和最小值,然後分區間,裝入桶中。之後再遍歷桶求出每個桶的當前最大值和最小值。用當前桶的最大值減去前乙個桶的最小值,選出最大的差值。當初除錯的時候老是出錯,結果是premax沒有賦初值,真粗心

相鄰兩數最大差值

有乙個整形陣列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 一般的比較排序演算法是做不到的,這用到了桶排序的思想,思路首先尋找整個陣...