← All problems

179. Largest Number

MediumOpen on LeetCodeProblem statement

Problem Statement

179. Largest Number

Medium


Given a list of non-negative integers nums, arrange them such that they form the largest number and return it.

Since the result may be very large, so you need to return a string instead of an integer.

 

Example 1:

Input: nums = [10,2]
Output: "210"

Example 2:

Input: nums = [3,30,34,5,9]
Output: "9534330"

 

Constraints:

Java

Source file
class Solution {
    public String largestNumber(int[] nums) {
        String[] s = Arrays.stream(nums).mapToObj(k -> String.valueOf((Integer) k)).toArray(String[]::new);
        Arrays.sort(s, (a, b) -> (b + a).compareTo(a + b));
        // System.out.println(Arrays.toString(s));
        if (s[0].equals("0"))   // implies all zero elements
            return "0";
        StringBuilder sb = new StringBuilder();
        for (String w : s)
            sb.append(w);
        return sb.toString();
    }
}