题解 | #把数组排成最小的数#
把数组排成最小的数
https://www.nowcoder.com/practice/8fecd3f8ba334add803bf2a06af1b993
import java.util.ArrayList; import java.util.Arrays; public class Solution { public String PrintMinNumber(int [] numbers) { String[] strs = new String[numbers.length]; for(int i = 0; i < numbers.length; i++) strs[i] = String.valueOf(numbers[i]); Arrays.sort(strs, (x, y) -> (x + y).compareTo(y + x)); StringBuilder res = new StringBuilder(); for(String s : strs) res.append(s); return res.toString(); } }
解题思想:排序,从小到大的和排序,拼接出来的就是最小值
⽽在数组中,我们要使所有的拼接起来是最⼩,则需要两两⽐较,类似排序,把满⾜
s1+s2>s2+s1 的 s1 放到后⾯, s2 放到前⾯。
#算法##算法笔记#