题目描述
输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。
思路与实现
way1
https://blog.csdn.net/weixin_44135282/article/details/98781113 与该题字符串的排列类似
求出全排列 拼接起来 求出拼接后的最大值 n个数字n!个排列
import java.util.*;
public class Solution {
public static String PrintMinNumber(int[] numbers) {
List<List<Integer>> res = new ArrayList<List<Integer>>();
if (numbers == null || numbers.length == 0)
return "";
boolean[] used = new boolean[numbers.length];
List<Integer> list = new ArrayList<Integer>();
Arrays.sort(numbers);//排序
dfs(numbers, used, list, res);
String[] results = new String[res.size