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();
        }
  • 相关阅读:
    Linux进程关系
    ambari 卸载脚本
    CentOS-7.2安装Ambari-2.6.1
    MYSQL57密码策略修改
    CentOS7 离线安装MySQL
    centos 安装mysql Package: akonadi-mysql-1.9.2-4.el7.x86_64 (@anaconda)
    mysql 数据备份
    spring-boot-starter-thymeleaf对没有结束符的HTML5标签解析出错
    ssh: scp命令
    python:os.path
  • 原文地址:https://www.cnblogs.com/skillking/p/9803686.html
Copyright © 2011-2022 走看看