题目

image.png

思路

  • 由于最大的数必然前一位大于等于后一位,因此我们在组合时,只要比较s1 + s2 与s2 + s1谁大即可

    代码

    1. public String largestNumber(int[] nums) {
    2. String[] numStrs = new String[nums.length];
    3. for (int i = 0; i < nums.length; i++) {
    4. numStrs[i] = String.valueOf(nums[i]);
    5. }
    6. Arrays.sort(numStrs, (o1, o2) -> (o1 + o2).compareTo(o2 + o1));
    7. StringBuilder res = new StringBuilder();
    8. for(int i = nums.length-1; i >= 0; i--) {
    9. res.append(numStrs[i]);
    10. }
    11. return res.charAt(0) == '0' ? "0" : res.toString();
    12. }
    最大数