题目描述
难度:Middle
相关话题:排序
给定一组非负整数,重新排列它们的顺序使之组成一个最大的整数。
示例 1:
输入: [10,2]
输出: 210
示例2:
输入: [3,30,34,5,9]
输出: 9534330
说明: 输出结果可能非常大,所以你需要返回一个字符串而不是整数。
思路:
对于两个数字a
,b
,只需要比较它们的字符串相加a+''+b
,b+''+a
‘,并且只能找它们从大到小排序。
/**
* @ Javascript中文网 - 前端进阶资源教程 https://www.javascriptc.com/
* @param {number[]} nums
* @return {string}
*/
var largestNumber = function(nums) {
nums.sort((a,b)=>(b+''+a)-(a+''+b))
let res=''
for(let n of nums) res+=n
if(res==='' || res[0]==="0")return "0"
return res
};
看完两件小事
如果你觉得这篇文章对你挺有启发,我想请你帮我两个小忙:
- 把这篇文章分享给你的朋友 / 交流群,让更多的人看到,一起进步,一起成长!
- 关注公众号 「画漫画的程序员」,公众号后台回复「资源」 免费领取我精心整理的前端进阶资源教程
本文著作权归作者所有,如若转载,请注明出处
转载请注明:文章转载自「 Js中文网 · 前端进阶资源教程 」https://www.javascriptc.com