码农知识堂 - 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

              • 相关阅读:
                OpenCV图像处理——目标追踪
                用高质量图像标注数据加速AI商业化落地
                【PyTorch】(四)----完整训练流程
                java计算机毕业设计仁爱公益网站源码+数据库+系统+lw文档+mybatis+运行部署
                React 全栈体系(十)
                王道数据结构C语言循环链表基本操作实现
                浅谈Attention与Self-Attention,一起感受注意力之美
                绕任意轴旋转矩阵推导
                MySQL 子查询
                【dart】动态获取类实例(model)的属性
              • 原文地址:https://blog.csdn.net/Tisfy/article/details/126221099
              • 最新文章
              • 攻防演习之三天拿下官网站群
                数据安全治理学习——前期安全规划和安全管理体系建设
                企业安全 | 企业内一次钓鱼演练准备过程
                内网渗透测试 | Kerberos协议及其部分攻击手法
                0day的产生 | 不懂代码的"代码审计"
                安装scrcpy-client模块av模块异常,环境问题解决方案
                leetcode hot100【LeetCode 279. 完全平方数】java实现
                OpenWrt下安装Mosquitto
                AnatoMask论文汇总
                【AI日记】24.11.01 LangChain、openai api和github copilot
              • 热门文章
              • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
                奉劝各位学弟学妹们,该打造你的技术影响力了!
                五年了,我在 CSDN 的两个一百万。
                Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
                面试官都震惊,你这网络基础可以啊!
                你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
                心情不好的时候,用 Python 画棵樱花树送给自己吧
                通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
                13 万字 C 语言从入门到精通保姆级教程2021 年版
                10行代码集2000张美女图,Python爬虫120例,再上征途
              Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
              正则表达式工具 cron表达式工具 密码生成工具

              京公网安备 11010502049817号