LeetCode164 最大間距(桶排序)

2021-10-10 21:42:24 字數 1258 閱讀 3080

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

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

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

輸出: 3

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

輸入: [10]

輸出: 0

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

max_subtraction = 0 # 差值

each_bucket_len = max(1, (max_num-min_num)//(len(nums)-1))

buckets = [ for _ in range((max_num-min_num) // each_bucket_len + 1)]

for i in range(len(nums)):

loc = (nums[i]-min_num)//each_bucket_len

prev_max = float('inf')

for i in range(len(buckets)):

if buckets[i] and prev_max != float('inf'):

max_subtraction = max(max_subtraction, min(buckets[i])-prev_max)

if buckets[i]:

prev_max = max(buckets[i])

return max_subtraction

s = solution()

nums = [3, 6, 9, 1]

print(s.maximumgap(nums))

solution/python3-tong-pai-xu-by-yanghk/

LeetCode 164 最大間距

給定乙個無序的陣列,找出陣列在排序之後,相鄰元素之間最大的差值。如果陣列元素個數小於 2,則返回 0。示例 1 輸入 3,6,9,1 輸出 3解釋 排序後的陣列是 1,3,6,9 其中相鄰元素 3,6 和 6,9 之間都存在最大差值 3。示例 2 輸入 10 輸出 0解釋 陣列元素個數小於 2,因此...

leetcode 164 最大間距

給定乙個無序的陣列,找出陣列在排序之後,相鄰元素之間最大的差值。如果陣列元素個數小於 2,則返回 0。第一時間想到的也是最簡單的,先將所給陣列排序,再遍歷一遍陣列找出最大間距 複雜度分析 首先我們來了解一下桶排序的思想。桶排序是體現了分治的思想。原理是建立若干個桶,通過某種對映將待排序的元素放置到桶...

leetcode 164 最大間距

目錄 一 題目內容 二 解題思路 三 給定乙個無序的陣列,找出陣列在排序之後,相鄰元素之間最大的差值。如果陣列元素個數小於 2,則返回 0。示例 1 輸入 3,6,9,1 輸出 3 解釋 排序後的陣列是 1,3,6,9 其中相鄰元素 3,6 和 6,9 之間都存在最大差值 3。示例 2 輸入 10 ...