博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Maximum Gap——无序数组中,排序后相邻的两个数,差值最大为多少
阅读量:5300 次
发布时间:2019-06-14

本文共 1590 字,大约阅读时间需要 5 分钟。

给定一个未经排序的数组,请找出其排序表中连续两个要素的最大间距。

如果数组中的要素少于 2 个,请返回 0.

给定数组 [1, 9, 2, 5],其排序表为 [1, 2, 5, 9],其最大的间距是在 5 和 9 之间,= 4.


1 class Solution: 2     """ 3     @param nums: an array of integers 4     @return: the maximun difference 5     """ 6     def maximumGap(self, nums): 7         # write your code here 8         if nums is None or len(nums) < 2: 9             return 010             11         MIN, MAX, n = nums[0], nums[0], len(nums)12         for num in nums:13             MIN, MAX = min(MIN, num), max(MAX, num)14             15         if MIN == MAX:16             return 017         18         # 最后的的答案一定大于等于 bucket_size19         # 因为只有这n个数均匀排列才等于bucket_size20         # 否则一定大于bucket_size21         bucket_size = (MAX - MIN) / (n - 1)22         buckets = [None for i in range(n)]23         24         # 将每个数放到相应的桶内25         for num in nums:26             bucket_id = int((num - MIN) // bucket_size)27             if buckets[bucket_id] == None:28                 buckets[bucket_id] = [num, num]29             else:30                 buckets[bucket_id][0] = min(buckets[bucket_id][0], num)31                 buckets[bucket_id][1] = max(buckets[bucket_id][1], num)32         33         ans, pre_bucket = 0, None34         35         for cur_bucket in range(len(buckets)):36             if buckets[cur_bucket] == None:37                 continue38             if pre_bucket != None:39                 ans = max(ans, buckets[cur_bucket][0] - buckets[pre_bucket][1])40             pre_bucket = cur_bucket41         42         return ans

 

转载于:https://www.cnblogs.com/liqiniuniu/p/10565027.html

你可能感兴趣的文章
koogra--Excel文件读取利器
查看>>
ASP.NET 使用ajaxupload.js插件出现上传较大文件失败的解决方法
查看>>
jenkins搭建
查看>>
C#中使用Split分隔字符串的技巧
查看>>
(springboot)freemarker(二)
查看>>
linux下golang gRPC配置详解
查看>>
mongodb 简单使用说明
查看>>
eclipse的调试方法的简单介绍
查看>>
OneAPM 云监控部署与试用体验
查看>>
加固linux
查看>>
wget 升级
查看>>
为什么需要大数据安全分析?
查看>>
day13.字典复习
查看>>
IPSP问题
查看>>
(转)Java中的String为什么是不可变的? -- String源码分析
查看>>
HNU 10362 A+B for Input-Output Practice (II)
查看>>
iOS——UIButton响应传参数
查看>>
【转帖】关于'eh vector constructor/destructor iterator'的讨论及类的内存分布模型
查看>>
十. 图形界面(GUI)设计9.列表和组合框
查看>>
10.17动手动脑
查看>>