zoukankan      html  css  js  c++  java
  • LeetCode 179. Largest Number (最大数)

    题目标签:Sort

      题目给了一组 数字,让我们组成一个最大数返回。

      从example 2 看出,排序不是按照一般的大小,而是按照搭配组合,比较大小后才得出结果。

      3, 30 的结果是 330 大于 303, 所以 3 要排序在 30 之前。

      建立一个cutom comparator来实现,具体看code。

    Java Solution: 

    Runtime:  5ms, faster than 76.83% 

    Memory Usage: 39.7MB, less than 21.46%

    完成日期:6/21/2020

    关键点:custom comparator

    class Solution {
        private class LargerNumberComparator implements Comparator<String> {
            @Override
            public int compare(String a, String b) {
                String order1 = a + b;
                String order2 = b + a;
                
                return order2.compareTo(order1);
            }
        }
        
        
        public String largestNumber(int[] nums) {
            // get input integers as strings.
            String[] asStrs = new String[nums.length];
            
            for(int i = 0; i < nums.length; i++) {
                asStrs[i] = String.valueOf(nums[i]);
            }
            
            // sort strings according to custom comparator.
            Arrays.sort(asStrs, new LargerNumberComparator());
            
            // if 00..., return 0
            if(asStrs[0].equals("0")) {
                return "0";
            }
            
            // build largest number from sorted array.
            String largestNumberStr = new String();
            for( String str : asStrs) {
                largestNumberStr += str;
            }
            
            return largestNumberStr;   
        }
    }

    参考资料:https://leetcode.com/problems/largest-number/solution/

    LeetCode 题目列表 - LeetCode Questions List

    题目来源:https://leetcode.com/

  • 相关阅读:
    Cmder配置
    uboot移植
    嵌入式产品开发技术问题
    flexbox布局
    使用PS过程
    STM32 使用 FreeRTOS过程记录
    TTL、RS232、RS485、串口
    用纯css改变下拉列表select框的默认样式
    task9暂存
    Hello World
  • 原文地址:https://www.cnblogs.com/jimmycheng/p/13174902.html
Copyright © 2011-2022 走看看