LeetCode 题解 – 179. 最大数(leetcode 最大子数组)

LeetCode 题解 - 179. 最大数(leetcode 最大子数组)

力扣 179. 最大数点击查看题目

题目描述

给定一组非负整数,重新排列它们的顺序使之组成一个最大的整数。

示例 1:

LeetCode 题解 - 179. 最大数(leetcode 最大子数组)

示例 2:

LeetCode 题解 - 179. 最大数(leetcode 最大子数组)

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

解决方案

自定义排序:

想法

为了构建最大数字,我们希望越高位的数字越大越好。

算法

首先,我们将每个整数变成字符串。然后进行排序。

如果仅按降序排序,有相同的开头数字的时候会出现问题。比方说,样例 2 按降序排序得到的数字是 95343303,然而交换 3 和 30 的位置可以得到正确答案 9534330。因此,每一对数在排序的比较过程中,我们比较两种连接顺序哪一种更好。我们可以证明这样的做法是正确的:

假设(不是一般性),某一对整数 a 和 b,我们的比较结果是 a 应该在 b 前面,这意味着 a ⌢ b > b ⌢ a,其中 ⌢ 表示连接。如果排序结果是错的,说明存在一个 c,b 在 c 前面且 c 在 a 的前面。这产生了矛盾,因为 a ⌢ b > b ⌢ a 和 b ⌢ c > c ⌢ b 意味着 a ⌢ c > c ⌢ a。换言之,我们的自定义比较方法保证了传递性,所以这样子排序是对的。

一旦数组排好了序,最“重要”的数字会在最前面。有一个需要注意的情况是如果数组只包含 0,我们直接返回结果 0 即可。否则,我们用排好序的数组形成一个字符串并返回。

Java 实现

LeetCode 题解 - 179. 最大数(leetcode 最大子数组)

Python 实现

LeetCode 题解 - 179. 最大数(leetcode 最大子数组)

复杂度分析

  • 时间复杂度:O(nlgn)

尽管我们在比较函数中做了一些额外的工作,但是这只是一个常数因子。所以总的时间复杂度是由排序决定的,在 Python 和 Java 中都是 O(nlgn)。

  • 空间复杂度:O(n)

这里,我们使用了 O(n) 的额外空间去保存 nums 的副本。尽管我们就地进行了一些额外的工作,但最后返回的数组需要 O(n) 的空间。因此,需要的额外空间与 nums 大小成线性关系。

本文作者:力扣

声明:本文归“力扣”版权所有,如需转载请联系。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至89291810@qq.com举报,一经查实,本站将立刻删除。
(0)
上一篇 2024年4月4日 上午9:51
下一篇 2024年4月4日 上午9:57

相关推荐

  • 退休学点什么爱好(退休学一套什么好)

    退休学一套什么好 退休学一套什么好?这可能是很多人想知道的问题。退休学是一门学科,主要研究如何更好地规划退休生活,包括如何安排时间,如何保持健康,如何保持社交联系等等。如果一个人想…

    教育百科 2024年4月21日
  • 2024大专好就业的专业排名 什么专业就业率高

    2024年大专好就业的专业排名是什么专业就业率高? 随着社会经济的不断发展,人们对于专业技能的需求也越来越高。因此,选择一个好的专业对于未来职业发展至关重要。在2024年大专好就业…

    教育百科 2024年4月6日
  • 珠海二中高考光荣榜

    珠海二中高考光荣榜 近日,珠海二中发布了2022年的高考光荣榜,这是二中学生在高考中取得优异成绩的成绩单,也是二中老师和校友们共同的骄傲。 在这个光荣榜上,我们看到了很多优秀的学生…

    教育百科 2024年10月17日
  • 乐观抑郁症

    标题:乐观抑郁症——如何在困境中找到希望 抑郁症是一种常见的心理疾病,它可能会给我们带来无尽的痛苦和折磨。有些人可能会认为,抑郁症只是弱者的表现,但实际上,抑郁症是一种可以控制的疾…

    教育百科 2025年7月13日
  • 初中休学是不是要留一级

    初中休学是不是要留一级 近年来,随着经济的发展和社会的进步,人们的生活水平得到了显著提高。同时,随着教育的普及,许多学生也面临着越来越多的压力。其中,初中学生休学的问题也越来越引起…

    教育百科 2024年11月21日
  • 小蜘蛛不上学

    小蜘蛛不上学 小蜘蛛是一个可爱的蜘蛛,它住在一个美丽的花园里。小蜘蛛非常聪明,它喜欢自己玩耍和探索周围的世界。但是,有一天,小蜘蛛发现它不能上学了。 小蜘蛛很困惑,因为它知道上学是…

    教育百科 2025年5月23日
  • 厌学学生转化措施怎么写

    厌学学生转化措施 对于许多学生来说,学习可能是他们最不感兴趣的事情之一。这些学生可能会表现出厌学、逃学、成绩下降等问题,给学校和教师带来了很大的困扰。为了帮助这些学生重新融入学习,…

    教育百科 2025年9月22日
  • 邵阳市网瘾少年案例研究

    邵阳市网瘾少年案例研究 网瘾是指过度使用互联网而成瘾的一种行为,它已经成为青少年身心健康的一大问题。在邵阳市,网瘾少年的问题日益突出,成为了一个备受关注的话题。本文将对邵阳市网瘾少…

    教育百科 2025年10月13日
  • 解决厌学

    解决厌学问题的方法有很多种,但是最常见的方法是寻求心理咨询。心理咨询可以帮助人们解决厌学问题,让人们重新找回学习的动力和兴趣。 如果正在经历厌学问题,不要感到孤独或无助。许多人都会…

    教育百科 2025年9月14日
  • 因病休学会影响学业吗?(因病休学会延迟毕业吗)

    因病休学会延迟毕业吗? 近年来,随着健康问题的日益凸显,许多学生选择休学来治疗身体疾病。在休学期间,学生可以集中精力治疗疾病,恢复身体健康,并且有机会重新规划自己的学习计划。然而,…

    教育百科 2024年6月15日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注