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

相关推荐

  • 休学没有休学证怎么办

    休学没有休学证怎么办? 近年来,随着大学教育的普及,越来越多的人选择休学来追求自己的兴趣爱好或完成个人目标。然而,在休学过程中,有些人可能会遇到休学证的问题。休学证是指学生暂停学业…

    教育百科 2025年4月28日
  • 留学休学申请书

    尊敬的招生委员会: 我是XXX,现就我的留学休学申请向您提交。 我是一名普通的大学生,目前正在攻读XXX专业。然而,由于个人原因,我需要暂时休学,并进行一些治疗。因此,我决定申请留…

    教育百科 2025年3月6日
  • 内蒙古小学厌学咨询网

    内蒙古小学厌学咨询网 厌学是学生们常见的问题,特别是在内蒙古小学这种教育资源相对匮乏的地方,更是容易发生。学生们因为各种因素而厌学,比如学习压力、学习成绩不好、家庭问题等等。这些问…

    教育百科 2026年1月24日
  • 江苏省中医院休学

    江苏省中医院休学 随着新冠疫情的爆发,江苏省中医院的一名医生不得不休学。这是一位有着多年工作经验的老医生,他在医院里工作已经有很长时间了。他不得不离开医院,去放松一下自己,调整自己…

    教育百科 2024年4月27日
  • 拿捏网瘾少女

    拿捏网瘾少女 网瘾少女,是指那些长期沉迷于网络世界中的女孩。她们经常花费大量时间在网上玩游戏、聊天和浏览社交媒体上,甚至忘记了自己的日常生活。对于她们的家人、朋友和医生,这已经成为…

    教育百科 2025年6月27日
  • 被国外大学强制休学

    我被国外大学强制休学,这是一种让我感到十分沮丧和无助的经历。我一直以来都非常努力,希望能够顺利完成我的学业,但这一次的经历让我深刻地体会到了教育的复杂性和不可预测性。 在我进入大学…

    教育百科 2025年9月14日
  • 婆婆网瘾太大

    婆婆网瘾太大,我们需要她寻求帮助

    教育百科 2026年8月6日
  • 如何帮儿子戒网瘾治疗网瘾的医院

    网瘾是一种严重的心理健康问题,常常导致孩子们沉迷于网络游戏和社交媒体,甚至影响其学业和社交生活。为了帮助儿子摆脱网瘾,我寻求了多家医院和治疗机构的建议,最终选择了一家专业的戒网瘾医…

    教育百科 2024年9月22日
  • 小学休学的坏处(小学休学对小升初有影响吗)

    小学休学对小升初有影响吗? 近年来,越来越多的家长开始关注小学休学对小升初的影响。休学是指学生在某个时间段内暂时离开学校,用于个人发展或家庭原因。对于家长来说,休学是否会影响小升初…

    教育百科 2024年5月15日
  • 大学生懒惰萎靡不振怎么办(大学孩子懒惰厌学怎么办)

    大学孩子懒惰厌学怎么办 近年来,大学孩子们懒惰厌学的问题日益突出。他们缺乏学习热情,不愿意参加课堂,不愿意做作业,甚至不愿意参加课外活动。这些问题不仅影响了他们学习成绩,也影响了他…

    教育百科 2024年9月11日

发表回复

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