LeetCode-最大数

·  阅读 1320
LeetCode-最大数

算法记录

LeetCode 题目:

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


说明

一、题目

输入: nums = [10,2]
输出: "210"

二、分析

  • 题目没有什么大的难点,就是一个排序即可,但是需要注意的是排序的规则,是两个数分别拼接形成的数字来进行比较。
  • 用数字进行操作还要自己去判断有多少位然后拼接,可以先转换为字符串,然后使用字典序来排序,因为出现的全是数字。
  • 最后还需要注意全零的判断,最大值是零那么就直接返回零就可以了。
class Solution {
    public String largestNumber(int[] nums) {
        String[] words = new String[nums.length];
        for(int i = 0; i < nums.length; i++) {
            words[i] = String.valueOf(nums[i]);
        }
        Arrays.sort(words, (o1, o2) -> {
            String t1 = o1 + o2, t2 = o2 + o1;
            return t1.compareTo(t2);
        });
        if("0".equals(words[words.length - 1])) return "0";
        StringBuilder builder = new StringBuilder();
        for(int i = words.length - 1; i >= 0; i--) {
            builder.append(words[i]);
        }
        return builder.toString();
    }
}

总结

编码能力的考察。

分类:
后端
标签:
分类:
后端
标签:
收藏成功!
已添加到「」, 点击更改