0179-Largest Number( 最大数)
这个系列算是出于个人兴趣开的一个新坑吧,最近看到同学刷LeetCode算法题,就想写写那些可以一行Python代码写出来的题目,因此本专栏的文章的解题方式效率不做保证,只为追求“一行的浪漫”。
题目
题解
简单解释一下题目,给定一个非负数组nums
,将这些数字拼接到一起形成一个大数,由于该数很大,需要以字符串的形式输出。本题难度为Medium。
代码
这道题的题解思路在于,你不可能遍历所有的组合情况然后选出最大的那种,这样一定会TLE的。可以考虑从字符串的角度来理解,就是两个数字字符a
和b
是拼接成a+b
还是b+a
更大在Python中可以依靠等长字符串直接比大小得出结果(因此,如果输入x
和y
,且x+y < y+x
那么此时x
应该在后面,因此为了契合默认的升序排序,这里输出一个负数即可)。那么只要对整个字符串列表按照这个规则进行降序排序(内部其实是逐个比较的过程),那么排序的结果其实就是最大数构成的顺序,将他们顺次拼接到一起即可。这里需要注意的是,因为输入非负,所以可能是全0,这时候输出会是000
这种格式,这里因为一行不便判断,所以用int函数检查后再转为str输出。
class Solution:def largestNumber(self, nums: List[int]) -> str:return str(int("".join(sorted(map(str, nums), key = functools.cmp_to_key(lambda x,y: 1 if x+y < y+x else -1)))))
从下面的提交反馈来看,效率不是很高(时间复杂度为O(N∗log(N))O(N* log(N))O(N∗log(N)),空间复杂度为O(N)O(N)O(N)),大家也应当考虑高效的方法,部分题目的高效解法可以参考我的仓库源码。
0179-Largest Number( 最大数)相关推荐
- largest number java_将给定的数组组成最大的数 Largest Number
问题: Given a list of non negative integers, arrange them such that they form the largest number. For ...
- LeetCode:Largest Number - 求整型数组中各元素可拼合成的最大数字
2019独角兽企业重金招聘Python工程师标准>>> 1.题目名称 Largest Number(求整型数组中各元素可拼合成的最大数字) 2.题目地址 https://leetco ...
- [每日编程]求 largest Number - 给出一组非负整数,求这些非负整数可以拼接出的最大数字...
英文:Given a list of non negative integers, arrange them such that they form the largest number. 中文:给出 ...
- [LeetCode]179. Largest Number
[LeetCode]179. Largest Number 题目描述 解题思路 求最大的数,在数组中对于每一位数字数值越大应当越靠前,如:9 > 5,所以9应该在5之前 需要考虑的是对于不同位数 ...
- 179 Largest Number
题目链接:https://leetcode.com/problems/largest-number/ 题目: Given a list of non negative integers, arrang ...
- [LeetCode]179.Largest Number
[题目] Given a list of non negative integers, arrange them such that they form the largest number. For ...
- LeetCode(179) Largest Number
题目如下: Given a list of non negative integers, arrange them such that they form the largest number. Fo ...
- [leetcode]179 Largest Number
问题描述: Given a list of non negative integers, arrange them such that they form the largest number. Fo ...
- Leetcode 179 Largest Number
Leetcode 179 Largest Number 题目 思路 代码 优化 题目 Given a list of non negative integers, arrange them such ...
- C#LeetCode刷题之#747-至少是其他数字两倍的最大数( Largest Number At Least Twice of Others)
问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3746 访问. 在一个给定的数组nums中,总是存在一个最大元素 ...
最新文章
- entity framework .core常用技巧
- 谷歌量子计算登上Nature封面,首次实现量子优越性,里程碑式突破
- python编程的条件语句_Python 条件语句
- 作者招募 | 加入PaperWeekly,让你的文字被更多人看到
- Android 中文API合集(4)(102篇)(chm格式)
- linux命令菜鸟ping,Linux ping命令
- BFS——广度优先算法(Breadth First Search)
- 避免Eclipse经常出现Out Of Memory
- Pandas 数据处理三板斧,你会几板?
- 图:出场顺序号码随机抽取及公开展示,并行随机抽取多个题目号码及公开展示-软件原型设计
- MAC常用命令和常用软件列表
- 苹果开发者公司账号注册流程注册新的苹果Apple Id并双重验证步骤
- 猜拳小游戏java_java 猜拳小游戏
- 田忌赛马c语言程序设计,关于c语言的田忌赛马问题。
- 我的世界java无限水_我的世界基岩版:如何获得无限水?这里有5种方法,最后一种无中生有...
- 华为鸿蒙手机版要2021开源,鸿蒙系统再起疑云:开源版和手机版完全不同,后者还有安卓彩蛋...
- 怎么删除计算机c盘应用,怎样删除电脑c盘中的垃圾
- 每日安全简讯20160715
- 从Spy Mouse看App Store的推广方法
- WGS84、GCJ-02、BD-09、图吧坐标简介及坐标转换实现(java版)