【字符串】179. 最大数(复习)
题目:
给定一组非负整数 nums,重新排列它们每位数字的顺序使之组成一个最大的整数。
注意:输出结果可能非常大,所以你需要返回一个字符串而不是整数。
示例 1:
输入:nums = [10,2]
输出:"210"
示例 2:
输入:nums = [3,30,34,5,9]
输出:"9534330"
示例 3:
输入:nums = [1]
输出:"1"
解答:
方法一:自定义排序
class Solution { //排序规则的发现很关键 private class largestNumberComparator implements Comparator<String>{ public int compare(String a,String b){ String order1 = a+b; String order2 = b+a; return order2.compareTo(order1); } } 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,new largestNumberComparator()); if(strs[0].equals("0")){ return "0"; } StringBuilder res = new StringBuilder(); for(int i =0;i<strs.length;i++){ res.append(strs[i]); } return res.toString(); } }

浙公网安备 33010602011771号