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