牛牛有n朵需要擺放的花,但是每朵花呢,高度都不一樣,牛牛不喜歡相鄰的花高度相差太多,這樣會影響美感。
所以牛牛提出了乙個「醜陋度」的概念,「醜陋度」意思為在乙個擺放序列中,相鄰花高度差的最大值。而且牛牛是乙個完美主義者,所以他希望:
1.將這些花擺成首尾相接的圓形
2.為了美觀,他希望擺放的花「醜陋度」最小
程式應返回:按照這些花排成乙個圓的順序,輸出在多個擺放花的序列中,最小的「醜陋度」。
輸入: 5,[2,1,1,3,2]
輸出:1
說明:可以擺成 1 2 3 2 1這樣的序列,最小的「醜陋度」為1
class solution
for(int i=1;iminvalue)
minvalue=array[i+2]-array[i];
}if(array[n-1]-array[n-2]>minvalue)
minvalue=array[n-1]-array[n-2];
return minvalue;
// write code here
}};
思路說明:
首先可以將整個的陣列進行排序,最小的的醜陋數一定是相鄰的最小。但是,如果只是簡單的排序的話,那麼最後乙個和第乙個是非常的大的醜陋數,這個時候可以這麼幹,將第2 4 6 8 10...2*n從後往前排列,也就是從陣列的最後面開始放置。將0 1 3 5 7 9 .....2*n-1從前面從前往後排列。這樣的話,只需要計算奇數和偶數的序列的差值,和0和1的差值,以及最後兩個數的差值,取最大值就好了。
相鄰最大差值
題目 請設計乙個複雜度為o n 的演算法,計算乙個未排序陣列中排序後相鄰元素的最大差值。給定乙個整數陣列a和陣列的大小n,請返回最大差值。designed by wyq 分析 這是乙個典型的利用桶排序求解問題,因為桶排序不少基於比較的排序可以打破nlogn的下限,可以達到題目要求的複雜度n 相鄰兩個...
相鄰兩數最大差值
有乙個整形陣列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...