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

    题目链接:把数组排成最小的数
    思路:对数组进行排序,假设要{x, y}组成最小数,那么通过比较"xy"和"yx"的大小,可以得到最小值,对整个数组按这种比较大小方式进行排序,最好得到的数组就是最小数。(证明见评论讲解
    代码:

    class Solution {
        public String minNumber(int[] nums) {
            List<String> list = new ArrayList<>(nums.length);
            for(int n : nums){
                list.add(""+n);
            }
            Collections.sort(list, (a, b)->(a+b).compareTo(b+a));
            StringBuilder sb = new StringBuilder();
            for(String n : list){
                sb.append(n);
            }
            return sb.toString();
        }
    }
    
    

    笔记

    • Arrays.sort(T[])可以传入int[]类型数据进行排序,但是这时无法自定义排序方式,因为在Comparator<>接口中参数必须是类不能是基础变量;当传入是String[]类型数组时,是可以自定义排序,因为数组中的元素是对象,不是基础变量。
    • int[]与Integer[]无法进行拆箱装箱
    • 上面代码最好使用String[]对nums[]进行转化,能很好的提高效率18ms -> 7ms。
  • 相关阅读:
    Flask--配置文件
    Flask--路由系统
    Flask--视图
    Flask--蓝图
    Flask--静态资源
    Flask--登录验证(多个装饰器)
    Flask--session
    CSS中的定位机制
    四、DDL常见操作汇总
    三、管理员必备技能
  • 原文地址:https://www.cnblogs.com/liuyongyu/p/14193411.html
Copyright © 2011-2022 走看看