相鄰的資料差值最小

2021-10-08 12:49:49 字數 779 閱讀 6196

牛牛有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...