/*
* 面试题45:把数组排成最小的数
* 题目:输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。
* 例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323
* 思路:利用了lambda表达式
*/
import java.util.Arrays;
public class No45PrintMinNumber {
public static void main(String[] args) {
No45PrintMinNumber n = new No45PrintMinNumber();
int [] a = {3, 32, 321};
System.out.println(n.PrintMinNumber(a));
}
public String PrintMinNumber(int[] numbers) {
int n = numbers.length;
String[] nums = new String[n];
//将整形数字转为字符串
for (int i = 0; i < n; i++)
nums[i] = numbers[i] + "";
//比较
Arrays.sort(nums, (s1, s2) -> (s1 + s2).compareTo(s2 + s1));
String ret = "";
//连接
for (String str : nums)
ret += str;
return ret;
}
}
面试题45:把数组排成最小的数
最新推荐文章于 2022-06-16 18:58:05 发布