陣列 最大差值 leetcode 164 最大間距

2021-10-16 02:23:58 字數 1060 閱讀 9025

給定乙個無序的陣列,找出陣列在排序之後,相鄰元素之間最大的差值。

如果陣列元素個數小於 2,則返回 0。

示例 1:

輸入: [3,6,9,1]

輸出: 3

解釋: 排序後的陣列是 [1,3,6,9], 其中相鄰元素 (3,6) 和 (6,9) 之間都存在最大差值 3。

示例 2:

輸入: [10]

輸出: 0

解釋: 陣列元素個數小於 2,因此返回 0。

說明:

#

## [164] 最大間距

## @lc code=start

class solution:

def maximumgap(self, nums: list[int]) -> int:

grap = 0

n = len(nums)

if n<2:

return grap

num_max = max(nums)

num_min = min(nums)

bucket_len = max(1,(num_max-num_min)//(n-1))

bucket_num = (num_max-num_min)//bucket_len+1

bucket = [ for _ in range(bucket_num)]

for num in nums:

pre_max = float('-inf')

for i in range(bucket_num):

if bucket[i] and pre_max!=float('-inf'):

grap = max(grap, min(bucket[i])-pre_max)

if bucket[i]:

pre_max = max(pre_max,max(bucket[i]))

return grap

# @lc code=end

陣列中的最大差值

有乙個長為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...