day25笔记
1.题目描述
2.代码构思(debug)
class Solution:
def maximumGap(self, nums: List[int]) -> int:
# if len(nums) < 2:
# return 0
# nums.sort()
# left = nums[0]
# right = nums[1]
# maxnum = -99999999
# for i in range(1,len(nums)):
# left = nums[i-1]
# right = nums[i]
# maxnum = max(maxnum,right - left)
# return maxnum
if len(nums) < 2: return 0
# 一些初始化
max_ = max(nums)
min_ = min(nums)
max_gap = 0
each_bucket_len = max(1,(max_-min_) // (len(nums)-1))
buckets =[[] for _ in range((max_-min_) // each_bucket_len + 1)]
# 把数字放入桶中
for i in range(len(nums)):
loc = (nums[i] - min_) // each_bucket_len
buckets[loc].append(nums[i])
# 遍历桶更新答案
prev_max = float('inf')
for i in range(len(buckets)):
if buckets[i] and prev_max != float('inf'):
max_gap = max(max_gap, min(buckets[i])-prev_max)
if buckets[i]:
prev_max = max(buckets[i])
return max_gap