Problem: 179. 最大数
文章目录
思路
自定义排序,将字符串大的拼接到前面
复杂度
时间复杂度: O ( n l o g n , n ) O(nlogn, n) O(nlogn,n) = O ( n l o g n ) O(nlogn) O(nlogn) 排序和数组字符串化
空间复杂度: O ( n ) O(n) O(n) 字符串列表的空间
Code
Python3
import functools
class Solution:
def largestNumber(self, nums: List[int]) -> str:
nums = list(map(str, nums))
# 自定义排序关系
def cmp(a, b):
if a + b == b + a: # a = b的关系
return 0
if a + b > b + a: # a > b的关系
return 1
else: # a < b的关系
return -1
nums.sort(key=functools.cmp_to_key(cmp), reverse=True)
return ''.join(nums) if nums[0] != '0' else '0'