zoukankan      html  css  js  c++  java
  • 把数组排成最小的数


    输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组 {3,32,321},则打印出这三个数字能排成的最小数字为 321323


    解题思路

    使用字符串的比较器辅助比较数组元素(字符串长度相等时,比较最小索引处的 Unicode 值)

    import java.util.List;
    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.Comparator;
    public class Solution {
        public String PrintMinNumber(int[] numbers) {
            List<Integer> list = new ArrayList<>();
            for(int i = 0; i < numbers.length; i++) {
                list.add(numbers[i]);
            }
            Collections.sort(list, new Comparator<Integer>() {
                public int compare(Integer str1, Integer str2) {
                    String s1 = str1 + "" + str2;
                    String s2 = str2 + "" + str1;
                    return s1.compareTo(s2);
                }
            });
            StringBuilder str = new StringBuilder();
            for(Integer num : list) {
                str.append(num.toString());
            }
            return str.toString();
        }
    }
    

  • 相关阅读:
    软件需求分析阅读笔记1
    在Ubuntu上搭建Zookeeper集群
    第三周学习进度总结
    读书计划
    假期周进度报告3
    热词分析及解释
    假期周进度报告(二)
    假期周进度报告(一)
    PHP商城
    第十六周总结
  • 原文地址:https://www.cnblogs.com/Yee-Q/p/13828773.html
Copyright © 2011-2022 走看看