乐趣区

关于java:JZ032把数组排成最小的数

把数组排成最小的数

题目形容

输出一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输出数组 {3,32,321},则打印出这三个数字能排成的最小数字为 321323。

题目链接 : 把数组排成最小的数

代码

import java.util.Arrays;

/**
 * 题目:把数组排成最小的数
 * 题目形容
 * 输出一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输出数组 {3,32,321},则打印出这三个数字能排成的最小数字为 321323。* 题目链接:* https://www.nowcoder.com/practice/8fecd3f8ba334add803bf2a06af1b993?tpId=13&&tqId=11185&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking
 */
public class Jz32 {public String printMinNumber(int[] numbers) {if (numbers == null || numbers.length == 0) {return "";}
        int n = numbers.length;
        String[] nums = new String[n];
        for (int i = 0; i < n; i++) {nums[i] = numbers[i] + "";
        }
        Arrays.sort(nums, (s1, s2) -> (s1 + s2).compareTo(s2 + s1));
        String result = "";
        for (String str : nums) {result += str;}
        return result;
    }

    public static void main(String[] args) {Jz32 jz32 = new Jz32();
        int[] numbers = new int[]{3, 32, 321};
        String s = jz32.printMinNumber(numbers);
        System.out.println(s);
    }
}

【每日寄语】完满的背地是艰苦与有数风雨的洗礼,宁肯脱一层皮也要飞起来,越致力越侥幸。

退出移动版