LeetCode如何把数组排成最小的数
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章主要介绍LeetCode如何把数组排成最小的数,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!题目描述输入一个非负整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接
千家信息网最后更新 2026年11月03日LeetCode如何把数组排成最小的数
这篇文章主要介绍LeetCode如何把数组排成最小的数,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
题目描述
输入一个非负整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。
0 < nums.length <= 100 输出结果可能非常大,所以你需要返回一个字符串而不是整数 拼接起来的数字可能会有前导 0,最后结果不需要去掉前导 0
题目样例
示例
输入: [10,2]
输出: "102"
输入: [3,30,34,5,9]
输出: "3033459"
题目思考
怎么定义最小?
解决方案
思路
分析题目, 要使得拼接起来的数字最小, 只有当各个拼接元素按照从小到大拼接起来才可以 而这里的从小到大拼接, 不是指按照数字本身顺序或者字典序从小到大拼接 举个例子, 90 和 902 的拼接结果应该是 90290, 但是 90 不管是数字还是字典序都小于 902 那如何定义哪个数字作为拼接后的第一个数字呢? 假如这个数字和任意其他数字拼接起来, 都小于将两个数字互换后拼接的结果, 那么显然这个数字就应该放在首位 到这里就知道了, 我们应该自定义一个排序方法, 对于两个数字 a 和 b 而言, 比较 str(a)+str(b)与str(b)+str(a)的大小关系, 然后对整个列表排序后组成一个字符串即可下面的代码使用两种方案实现, 一种是快速排序, 一种是语言内置排序, 供大家参考
复杂度
时间复杂度 O(NlogN)排序的时间复杂度 空间复杂度 O(N)使用了额外的字符串数组
代码
方案 1 - 自定义快速排序
class Solution:
def minNumber(self, nums: List[int]) -> str:
# 使用map将原数组的数字转成字符串
nums = list(map(str, nums))
def quicksort(l, r):
# 经典快速排序实现
if l >= r:
return
pivot = nums[l]
i, j = l, r
while i < j:
# 只需要把这里改成自定义的排序方法即可
while i < j and nums[j] + pivot >= pivot + nums[j]:
j -= 1
nums[i] = nums[j]
# 只需要把这里改成自定义的排序方法即可
while i < j and nums[i] + pivot <= pivot + nums[i]:
i += 1
nums[j] = nums[i]
nums[i] = pivot
quicksort(l, i - 1)
quicksort(i + 1, r)
quicksort(0, len(nums) - 1)
return ''.join(nums)
方案 2 - 自定义内置排序
class Solution:
def minNumber(self, nums: List[int]) -> str:
class compare(str):
def __lt__(self, x):
return self + x < x + self
# 使用python内置sorted的key, 传入一个重载__lt__的类, 自定义排序
return ''.join(sorted(map(str, nums), key=compare))
以上是"LeetCode如何把数组排成最小的数"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!
数字
排序
数组
最小
复杂
复杂度
字符
字符串
方案
结果
题目
从小到大
从小
方法
输入
输出
两个
代码
内容
前导
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
湖北九亚互联网络科技有限公司
湖南永感互联网科技有限公司
互联网科技工作委员会毛军
互联网科技金融
无线互联网科技
长亮科技互联网金融
新华互联网科技校企合作
互联网巨头投资的硬核科技
青岛科技大学互联网大赛研究生
洛阳昕诺飞互联网科技有限公司
民营互联网公司国防科技
互联网安防科技感
图游互联网科技
广州互联网高科技取餐柜
扫呗互联网科技有限公司
宁波跨境商互联网科技有限公司
广州三三互联网科技有限公司
互联网科技的前景
网互联网络科技
瑞安市蟠桃会互联网科技有限公司
广东猪兼强互联网科技有限公司
互联网 科技
融贸通互联网科技
猫创互联网科技
互联网金融科技委员会
安控科技rtu产品工业互联网
崇明区互联网教育科技售后服务
中国科技创新与世界互联网大会
深圳互联网科技的发展
广州千川互联网科技有限公司