刷题笔记(19)--把数组排成最小的数
Posted HardyDragon_CC
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了刷题笔记(19)--把数组排成最小的数相关的知识,希望对你有一定的参考价值。
- 根据整形数组生成字符串数组
- 对字符串数组使用内置函数 sort(排序数组,比较器) 进行排序,排序规则是如果 s1+ s2 的字典序大于 s2 + s1,说明 s1要放在 s2 后面,反之。
- compareTo 结果大于0,说明要排序,将两个参数交换位置。
- 最后拼接排序后的字符数组返回字符串即可
class Solution {
public String minNumber(int[] nums) {
String[] strs = new String[nums.length];
for (int i = 0; i < nums.length; i++)
// valueOf 返回 int 参数的字符串表示形式
strs[i] = String.valueOf(nums[i]);
/*
sort 的第二参数是比较器。
compareTo 如果参数字符串等于此字符串,则值为0 ;
如果此字符串按字典顺序小于字符串参数,则为小于0的值;
如果此字符串按字典顺序大于字符串参数,则为大于0的值。
(x, y) 为传入的参数,这里指的是两个相邻字符串
*/
Arrays.sort(strs, (x, y) -> {
return (x + y).compareTo(y + x);
});
StringBuilder res = new StringBuilder();
for (String s : strs)
res.append(s);
return res.toString();
}
}
以上是关于刷题笔记(19)--把数组排成最小的数的主要内容,如果未能解决你的问题,请参考以下文章