zoukankan      html  css  js  c++  java
  • 179.Largest Number

    一、题目

      1、审题

      

      2、分析

        给出一个整形数组,将其中的元素进行拼接,形成的最大的数值。返回字符串形式的这个数值(防止溢出)。

    二、解答

      1、思路:

        ①、将整形数组转为字符串数组;

        ②、重写 Comparator 的 compare 方法,对拼接后的字符串大小进行比较 ;

        ③、最终根据此 compare 方法对字符串数组进行排序,对排序后的字符串数组进行拼接形成一个字符串即可。

        public String largestNumber2(int[] nums) {
            
            if(nums == null || nums.length == 0)
                return "";
            
            String[] s_num = new String[nums.length];
            for (int i = 0; i < s_num.length; i++) 
                s_num[i] = String.valueOf(nums[i]);
            
            // Comparator to decide which string should come first in concatenation
            Comparator<String> comp = new Comparator<String>() {
                @Override
                public int compare(String o1, String o2) {
                    String s1 = o1 + o2;
                    String s2 = o2 + o1;
                    // 
                    return s2.compareTo(s1);
                }
            };
            
            // sort from first index to last
            Arrays.sort(s_num, comp);
            
            if(s_num[0].charAt(0) == '0')
                return "0";
            
            StringBuilder sb = new StringBuilder();
            for(String s: s_num) 
                sb.append(s);
            
            return sb.toString();
        }
  • 相关阅读:
    知识点
    nodejs总结之redis模块
    nodejs总结之日志模块log4js
    各种类型的串口说明
    linux常用命令
    JAVA总结之编码
    JAVA总结之异常
    JAVA总结之方法重载
    JAVA总结之关键字static和final
    JAVA总结之数组篇
  • 原文地址:https://www.cnblogs.com/skillking/p/9803686.html
Copyright © 2011-2022 走看看