zoukankan      html  css  js  c++  java
  • Largest Number——LeetCode

    Given a list of non negative integers, arrange them such that they form the largest number.

    For example, given [3, 30, 34, 5, 9], the largest formed number is 9534330.

    Note: The result may be very large, so you need to return a string instead of an integer.

    题目大意:给定一个数组,数组里都是非负整数,求一个组合使得这个数是最大的。

    解题思路:这个题一开始我是自定义class然后写comparator,首先比较第一位数,然后比较第二位……后来想了一下其实直接把两个数转为String,然后分别前后拼接一下就可以比较了。直接sort就可以得到结果,代码更清晰。或者定义一个PriorityQueue,自定义comparator,把给定的数组转为这个queue也是一样的。

        public String largestNumber(int[] nums) {
            if (nums == null || nums.length < 1) {
                return null;
            }
            LinkedList<String> res = new LinkedList<>();
            for (int num : nums) {
                res.add(String.valueOf(num));
            }
            StringBuilder sb = new StringBuilder();
            Collections.sort(res, new Comparator<String>() {
                @Override
                public int compare(String o1, String o2) {
                    String s1 = o2 + o1;
                    String s2 = o1 + o2;
                    return s1.compareTo(s2);
                }
            });
            for (String next : res) {
                sb.append(next);
            }
            int cnt = 0;
            while (cnt < sb.length() && sb.charAt(cnt) == '0') {
                cnt++;
            }
            return sb.substring(cnt == sb.length() ? cnt - 1 : cnt);
        }
  • 相关阅读:
    mybatis-plus中使用FIND_IN_SET函数
    配置devtools热部署
    clickhouse20.12.3参数配置
    mysql5.7的sys系统库应用示例
    单独的线程上创建和显示WPF窗口
    DataGrid 中Combox的使用
    DataGridColumn普通样式和编辑样式
    WPF分辨率适配
    C# 上传文件添加其他参数
    C# 上传文件添加附加参数
  • 原文地址:https://www.cnblogs.com/aboutblank/p/4442425.html
Copyright © 2011-2022 走看看