本文主要是介绍剑指offer -- 把数组排成最小的数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目描述
输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{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>() {@Overridepublic int compare(String o1, String o2) {return (o1 + o2).compareTo((o2 + o1));}});for(String s : list)sb.append(s);return sb.toString();}
}
这篇关于剑指offer -- 把数组排成最小的数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!