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();
        }
  • 相关阅读:
    html5shiv.js-让IE浏览器支持HTML5标准
    CSS2系列:外边距合并问题(margincollapse)
    HTML5:离线存储(缓存机制)-IndexDB
    CSS3系列:流式(弹性)布局(flex布局)
    Sublime Text 3 常用插件以及安装方法(转)
    后台配置参数写在文件上
    20160414
    2016413
    20160412
    网页设计素材网站
  • 原文地址:https://www.cnblogs.com/skillking/p/9803686.html
Copyright © 2011-2022 走看看