>179. 最大数<
>largestNumber<
一、解题思路
1、解法一( Java )
解法思路:字典序+比较器
首先将 nums
中的数转换成 String
类型,然后使用闭包 lambda
表达式自定义比较器
,再使用 compareTo()
方法 比较两个字符串后按照字典序排列, 使用可变字符序列 StringBuffer
append()
方法将排序后的字符串数组拼接在一起即可
代码如下:
/*** @author listen1024* @date 2022-1-21* 【★】179. 最大数 largestNumber*/
class Solution {public String largestNumber(int[] nums) {String[] strs = new String[nums.length];for(int i = 0;i < nums.length;i++){strs[i] = String.valueOf(nums[i]);}Arrays.sort(strs,(a,b) ->{String order1 = a + b;String order2 = b + a;return order2.compareTo(order1);});if(strs[0].equals("0")){return "0";}StringBuffer sb = new StringBuffer ();for(String s : strs){sb.append(s);}return sb.toString();}
}
运行结果截图如下: