179. Largest Number ¶ Time: $O(\texttt{sort})$ Space: $O(n)$ C++JavaPython 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15class Solution { public: string largestNumber(vector<int>& nums) { string ans; ranges::sort(nums, [](int a, int b) { return to_string(a) + to_string(b) > to_string(b) + to_string(a); }); for (const int num : nums) ans += to_string(num); return ans[0] == '0' ? "0" : ans; } }; 1 2 3 4 5 6 7 8 9class Solution { public String largestNumber(int[] nums) { final String s = Arrays.stream(nums) .mapToObj(String::valueOf) .sorted((a, b) -> (b + a).compareTo(a + b)) .collect(Collectors.joining("")); return s.startsWith("00") ? "0" : s; } } 1 2 3 4 5 6 7 8class LargerStrKey(str): def __lt__(x: str, y: str) -> bool: return x + y > y + x class Solution: def largestNumber(self, nums: list[int]) -> str: return ''.join(sorted(map(str, nums), key=LargerStrKey)).lstrip('0') or '0'