【力扣】179. 最大数
发布日期:2021-06-29 19:47:12 浏览次数:2 分类:技术文章

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

题目:给定一组非负整数 nums,重新排列每个数的顺序(每个数不可拆分)使之组成一个最大的整数。

注意:输出结果可能非常大,所以你需要返回一个字符串而不是整数。

示例 1:

输入:nums = [10,2]

输出:“210”
示例 2:

输入:nums = [3,30,34,5,9]

输出:“9534330”
示例 3:

输入:nums = [1]

输出:“1”
示例 4:

输入:nums = [10]

输出:“10”

提示:

1 <= nums.length <= 100

0 <= nums[i] <= 109

答案:

class Solution {
public String largestNumber(int[] nums) {
int count0 = 0; List
list = new ArrayList<>(); for(int n : nums){
if(n == 0) count0++; list.add(String.valueOf(n)); } list.sort((o1, o2) -> (o2 + o1).compareTo(o1 + o2));//比较器-相当于: /*list.sort(new Comparator
() { @Override public int compare(String o1, String o2) { return (o2 + o1).compareTo(o1 + o2); } });*/ //compareTo:如果指定的数与参数相等返回0.如果指定的数小于参数返回 -1((o2+o1)<(o1+o2))。如果指定的数大于参数返回 1。 //Comparator:假如o1的值大于o2,你返回1,此时调用Collections.sort()函数就是升序;假如o1的值大于o2,你返回-1,此时调用Collections.sort()函数就是降序。o1-o2为升序序排列,o2-o1为降序排列,若具体到某一字段,则根据该字段进行排列 if(count0 == nums.length) return String.valueOf(0); return String.join("", list);//list中每个元素用""连接 }}

转载地址:https://darkness.blog.csdn.net/article/details/115614745 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:【剑指OFFER】56 - I. 数组中数字出现的次数
下一篇:【剑指OFFER】49. 丑数

发表评论

最新留言

做的很好,不错不错
[***.243.131.199]2024年04月12日 05时52分00秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章