剑指offer -- 把数组排成最小的数

xiaoxiao2025-04-22  9

题目描述

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

AC代码

import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; public class Solution { public String PrintMinNumber(int [] numbers) { StringBuilder sb = new StringBuilder(); List<String> list = new ArrayList<>(); for(int number : numbers) list.add(number + ""); Collections.sort(list, new Comparator<String>() { @Override public int compare(String o1, String o2) { return (o1 + o2).compareTo((o2 + o1)); } }); for(String s : list) sb.append(s); return sb.toString(); } }
转载请注明原文地址: https://www.6miu.com/read-5028900.html

最新回复(0)