Skip to content

179. Largest Number

Difficulty: Medium

LeetCode Problem View on GitHub


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:

  • 1 <= nums.length <= 100
  • 0 <= nums[i] <= 109

Solution

class Solution {
    static class custom_sort implements Comparator<String> {
        @Override
        public int compare(String first, String second) {
            String a = first + second;
            String b = second + first;
            return b.compareTo(a);
        }
    }
    public String largestNumber(int[] nums) {
        int n = nums.length;
        ArrayList<String> res = new ArrayList<>();
        for (int ele : nums) res.add(String.valueOf(ele));
        Collections.sort(res, new custom_sort());
        if (res.size() > 0 && res.get(0).equals("0")) return "0";
        String ans = "";
        for (String temp : res) ans += temp;
        return ans;
    }
}

Complexity Analysis

  • Time Complexity: O(?)
  • Space Complexity: O(?)

Approach

Detailed explanation of the approach will be added here