二十二 陣列 最大差值

2021-09-29 17:42:35 字數 1339 閱讀 2450

一、最大差值

public

static

intmaxgap

(int

arr)

int length = arr.length;

// 初始化max為最小值

int max = integer.min_value;

// 初始化min為最大值

int min = integer.max_value;

for(

int i =

0; i < length; i++

)// 如果陣列中只有乙個數

if(max == min)

// 用來標識每個桶中是否有資料(length + 1 個桶)

boolean

hasnum =

newboolean

[length +1]

;// 用來存放每個桶中的最大值(length + 1 個桶)

int[

] maxs =

newint

[length +1]

;// 用來存放每個桶中的最小值(length + 1 個桶)

int[

] mins =

newint

[length +1]

;// 陣列中的當前元素應該進入哪個桶

int bid;

// 更新當前桶中的最大值和最小值,標記是否是存入資料

for(

int i =

0; i < length; i++

)// 全域性最大差值

int result =0;

// 第乙個桶的最大值

int lastmax = maxs[0]

;// 從第2個桶開始遍歷,比較當前非空桶的最小值和上乙個非空桶的最大值之間的差值和全域性差值的大小關係

for(

int i =

1; i < maxs.length; i++)}

return result;

}/**

* 確定陣列中某個數該去幾號桶

陣列中的最大差值

有乙個長為n的陣列a,求滿足0 a b給定陣列 a及它的大小 n,請返回最大差值。解析 貪心思想,時間複雜度為o n 設定當前陣列中的最小值為min value。初始化為arr 0 然後依次遍歷陣列中的每乙個元素,當遍歷到乙個元素時求出當前元素與之前的min value差值,用該差值和當前最大的差值...

相鄰最大差值

題目 請設計乙個複雜度為o n 的演算法,計算乙個未排序陣列中排序後相鄰元素的最大差值。給定乙個整數陣列a和陣列的大小n,請返回最大差值。designed by wyq 分析 這是乙個典型的利用桶排序求解問題,因為桶排序不少基於比較的排序可以打破nlogn的下限,可以達到題目要求的複雜度n 相鄰兩個...

無序陣列求最大差值

乙個陣列a 0.n 1 求a j a i 的最大值,其中icite 第一種方法 從左往右求下標0到 k 1 的最小值min 從右往左求 下標k到n 1 的最大值max,對於每個k都有乙個max min的值,最後求這個值的最大值即可。例如陣列 4 5 2 6 3 1 k 1 2 3 4 5 min 4...