LeetCode热题100-最大数(179)

该题不在hot 100!

给定一组非负整数 nums,重新排列每个数的顺序(每个数不可拆分)使之组成一个最大的整数。

**注意:**输出结果可能非常大,所以你需要返回一个字符串而不是整数。

不能直接比较大小只能拼接后比较,这种更像是一种排序,排序后的值为这个数组组成最大的整数。时间复杂度:O(nlogn) ,空间复杂度:O(n)。针对都为0的场景直接返回0.

python 复制代码
from functools import cmp_to_key
class Solution:
    def largestNumber(self, nums: List[int]) -> str:
        def compare(x, y):
            s1 = str(x) + str(y)
            s2 = str(y) + str(x)
            if s1 > s2:
                return -1
            elif s1 < s2:
                return 1
            else:
                return 0
        
        nums_sorted = sorted(nums, key=cmp_to_key(compare))
        res = ''.join(str(num) for num in nums_sorted)
        return "0" if res[0] == "0" else res
相关推荐
BD4SXV22 分钟前
线性二次调节器(Linear Quadratic Regulator,LQR)的无限时域最优控制求解与黎卡提方程
算法·自动化
ST——Jess30 分钟前
2026年度传统文化数字化与命理科技(Ethno-tech)行业趋势研究报告:专业级数智工作台的技术壁垒与评测标准
人工智能·科技·算法·架构
Matrix_111 小时前
第13篇:非线性位移场——漩涡、鱼眼、水波纹与球面化
图像处理·算法
金牌归来发现妻女流落街头1 小时前
【LeetCode 第207题】
算法·leetcode·拓扑·领接表
熬夜敲代码的猫1 小时前
AVL树(C++详解版)
数据结构·c++·算法
-To be number.wan1 小时前
算法日记 | STL-MAP
c++·算法
cjp5601 小时前
015. UG 二次开发,拉伸草图生成实体类,高级草图类封装
算法
Eric 辰东2 小时前
【C 语言程序的编译和链接】详解编译链接过程
c语言·笔记·算法·学习方法
迈巴赫车主2 小时前
蓝桥杯21247弹跳鞋java
java·开发语言·数据结构·算法·职场和发展·蓝桥杯
jghhh012 小时前
基于 Weiler-Atherton 算法的多边形裁剪程序实现
算法