把数组排成最小的数
题目形容
输出一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输出数组 {3,32,321},则打印出这三个数字能排成的最小数字为 321323。
题目链接 : 把数组排成最小的数
代码
import java.util.Arrays;
/**
* 题目:把数组排成最小的数
* 题目形容
* 输出一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输出数组 {3,32,321},则打印出这三个数字能排成的最小数字为 321323。* 题目链接:* https://www.nowcoder.com/practice/8fecd3f8ba334add803bf2a06af1b993?tpId=13&&tqId=11185&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking
*/
public class Jz32 {public String printMinNumber(int[] numbers) {if (numbers == null || numbers.length == 0) {return "";}
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 result = "";
for (String str : nums) {result += str;}
return result;
}
public static void main(String[] args) {Jz32 jz32 = new Jz32();
int[] numbers = new int[]{3, 32, 321};
String s = jz32.printMinNumber(numbers);
System.out.println(s);
}
}
【每日寄语】完满的背地是艰苦与有数风雨的洗礼,宁肯脱一层皮也要飞起来,越致力越侥幸。