有乙個整形陣列a,請設計乙個複雜度為o(n)的演算法,算出排序後相鄰兩數的最大差值。
給定乙個int陣列a和a的大小n,請返回最大的差值。保證陣列元素多於1個。
測試樣例:
[1,2,5,4,6],5
返回:2基於桶排序的思想完成,不考慮兩個相同的桶內的差值,只考慮該桶的最小值減去上乙個桶的最大值,最大的就是最大值。
public class gap
int len = nums.length;
int min = integer.max_value;
int max = integer.min_value;
//找出最大值和最小值
for (int i = 0; i < len; i++)
if (min == max)
boolean hasnum = new boolean[len + 1];
int maxs = new int[len + 1];
int mins = new int[len + 1];
int bid = 0;
for (int i = 0; i < len; i++)
int res = 0;
int lastmax = 0;
int i = 0;
while (i <= len)
}for (; i <= len; i++)
}return res;
}// 使用long型別是為了防止相乘時溢位
public int bucket(long num, long len, long min, long max)
}
相鄰兩數最大差值
有乙個整形陣列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 一般的比較排序演算法是做不到的,這用到了桶排序的思想,思路首先尋找整個陣...
相鄰兩數最大差值
有乙個整形陣列a,請設計乙個複雜度為o n 的演算法,算出排序後相鄰兩數的最大差值。給定乙個int陣列a和a的大小n,請返回最大的差值。保證陣列元素多於1個。測試樣例 1,2,5,4,6 5返回 2 牛課上的練習題,現在把 貼出來 class gap int dis max min n 區間間隔 i...