码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • LeetCode 0179. 最大数


    【LetMeFly】179.最大数

    力扣题目链接:https://leetcode.cn/problems/largest-number/

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

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

     

    示例 1:

    输入:
      nums = [10,2]
      输出:"210"

          示例 2:

          输入:
            nums = [3,30,34,5,9]
            输出:"9534330"

                 

                提示:

                • 1 <= nums.length <= 100
                • 0 <= nums[i] <= 109

                方法一:自定义排序方式

                其实不证明的话,这题非常简单。

                对于两个数而言,哪个应该放在前面,哪个应该放在后面呢?

                我们只需要比较一下哪个放前面结果比较大即可。

                也就是说,对于两个数a和b,如果ab > ba,那么就把a放在b前。反之将b置前。

                **注意:**如果所有元素全部为 0 0 0,记得不要返回000...0,只能返回一个0。

                • 时间复杂度 O ( L × n log ⁡ n ) O(L\times n\log n) O(L×nlogn),其中 n n n是数组中元素的个数, L L L是数字的平均位数
                • 空间复杂度 O ( L × log ⁡ n ) O(L\times\log n) O(L×logn)

                AC代码

                C++

                class Solution {
                private:
                    static bool cmp(const int& a, const int& b) {
                        string sa = to_string(a);
                        string sb = to_string(b);
                        return sa + sb > sb + sa;
                    }
                public:
                    string largestNumber(vector<int>& nums) {
                        string ans;
                        sort(nums.begin(), nums.end(), cmp);
                        for (int& t : nums) {
                            ans += to_string(t);
                        }
                        if (ans[0] == '0') {  // 不能是00000
                            return "0";
                        }
                        return ans;
                    }
                };
                
                • 1
                • 2
                • 3
                • 4
                • 5
                • 6
                • 7
                • 8
                • 9
                • 10
                • 11
                • 12
                • 13
                • 14
                • 15
                • 16
                • 17
                • 18
                • 19
                • 20

                同步发文于CSDN,原创不易,转载请附上原文链接哦~
                Tisfy:https://letmefly.blog.csdn.net/article/details/126221099

              • 相关阅读:
                放大镜-第12届蓝桥杯Scratch选拔赛真题精选
                Flex布局和Float布局的实现
                开源浏览器引擎对比与适用场景:WebKit、Chrome、Gecko
                Korzh EasyQuery .Net for ASP.Net 7.2.X Crack
                Openlayers 快速上手教程
                7 个适合初学者的项目,可帮助您开始使用 ChatGPT
                【C语言刷LeetCode】1962. 最大宽度坡(M)
                uboot 添加命令
                配置基于接口的ARP表项限制和端口安全(限制用户私自接入傻瓜交换机或非法主机接入)
                Spring Cloud Alibaba 概述
              • 原文地址:https://blog.csdn.net/Tisfy/article/details/126221099
              • 最新文章
              • 沪漂五周年了:我越来越迷茫了
                Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
                MySQL-Seconds_behind_master的精度误差
                [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
                AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
                Agent OS :五种驯服不确定性的范式
                PortSwigger SQL注入LAB11
                数据库即时编译JIT
                [Begin]AI Learn Data Day 0
                深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
              • 热门文章
              • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
                奉劝各位学弟学妹们,该打造你的技术影响力了!
                五年了,我在 CSDN 的两个一百万。
                Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
                面试官都震惊,你这网络基础可以啊!
                你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
                心情不好的时候,用 Python 画棵樱花树送给自己吧
                通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
                13 万字 C 语言从入门到精通保姆级教程2021 年版
                10行代码集2000张美女图,Python爬虫120例,再上征途
              小工具 小游戏
              Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

              京公网安备 11010502049817号