面试题45. 把数组排成最小的数
题目:

思路:
【1】其实这个题和最大数是一样的,只是排序不同罢了,可以参考最大数 。
代码展示:
//时间4 ms击败96.23% //内存41 MB击败70.47% class Solution { public String minNumber(int[] nums) { int len=nums.length; String[] strings=new String[len]; for (int i = 0; i <len ; i++) { strings[i]=String.valueOf(nums[i]); } Arrays.sort(strings, (o1, o2) -> o1.concat(o2).compareTo(o2.concat(o1))); StringBuilder sb=new StringBuilder(); for (String s:strings) { sb.append(s); } return sb.toString(); } } //Arrays.sort(strings, (o1, o2) -> o1.concat(o2).compareTo(o2.concat(o1)));的完整版: //根据返回的int值判断是升序还是降序 Arrays.sort(strings ,new Comparator<String>() { @Override public int compare(String o1, String o2) { return o1.concat(o2).compareTo(o2.concat(o1)); } });

浙公网安备 33010602011771号