leetcode0179.最大数(代码片段)

Tisfy Tisfy     2022-11-30     479

关键词:

【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

方法一:自定义排序方式

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

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

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

也就是说,对于两个数ab,如果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;
    
;

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

0179-largestnumber(代码片段)

...算是出于个人兴趣开的一个新坑吧,最近看到同学刷LeetCode算法题,就想写写那些可以一行Python代码写出来的题目,因此本专栏的文章的解题方式效率不做保证,只为追求“一行的浪漫”。题目题解简单解释一下... 查看详情

leetcode1710.卡车上的最大单元数(代码片段)

【LetMeFly】1710.卡车上的最大单元数力扣题目链接:https://leetcode.cn/problems/maximum-units-on-a-truck/请你将一些箱子装在一辆卡车上。给你一个二维数组boxTypes,其中boxTypes[i]=[numberOfBoxesi,numberOfUnitsPerBoxi]:number 查看详情

leetcode——可以输入的最大单词数(代码片段)

1.题目2.题解把损坏单词存入list中,res为单词可出现次数遍历test字符串,遇见空格/最后一个单词就res+1如单词中存在损坏字符,res–classSolutionpublicintcanBeTypedWords(Stringtext,StringbrokenLetters)List<Character>list= 查看详情

leetcode179.最大数c++/java详细题解(代码片段)

目录1、题目2、思路3、c++代码4、java代码1、题目给定一组非负整数nums,重新排列每个数的顺序(每个数不可拆分)使之组成一个最大的整数。注意:输出结果可能非常大,所以你需要返回一个字符串而不是整... 查看详情

leetcode479最大回文数乘积[暴力枚举]heroding的leetcode之路(代码片段)

解题思路:n的范围为1~8,相信大伙已经知道答案了,代码如下:classSolutionpublic:intlargestPalindrome(intn)vector<int>ans=9,987,123,597,677,1218,877,475;returnans[n-1];;好了,不开玩笑了, 查看详情

leetcode0421.数组中两个数的最大异或值(代码片段)

...421.数组中两个数的最大异或值力扣题目链接:https://leetcode.cn/problems/maximum-xor-of-two-numbers-in-an-array/给你一个整数数组nums,返回nums[i]XORnums[j]的最大运算结果,其中0≤i≤j<n。进阶:你可以在O(n)的时间解决这个 查看详情

leetcode1877数组中最大数对和的最小值[排序]heroding的leetcode之路(代码片段)

解题思路:一道非常简单的排序题,所谓的最大的最小数对和,只有一头一尾相加的数对和才能使最大的值最小,所以排完序后一头一尾取出搭配,找出最大值返回即可,代码如下:classSolutionpublic:intmi... 查看详情

leetcode——数组中最大数对和的最小值(代码片段)

1.题目2.题解题目的关键点在于:最大数对和的值最小!那么怎么才能最小呢,最后组成的数对,每对数对的值尽可能平均就有了一个思路:(1)数组排序(2)最小值与最大值相加classSolutionpubli... 查看详情

《leetcode之每日一题》:96.数组中最大数对和的最小值(代码片段)

数组中最大数对和的最小值有关题目题解题目链接:数组中最大数对和的最小值有关题目一个数对(a,b)的数对和等于a+b。最大数对和是一个数对数组中最大的数对和。比方说,如果我们有数对(1,5),(2,3)和(4,4),... 查看详情

leetcode1979.找出数组的最大公约数(c++)(代码片段)

1979.找出数组的最大公约数1题目描述2示例描述2.1示例12.2示例22.3示例33解题提示4解题思路5代码详解1题目描述给你一个整数数组nums,返回数组中最大数和最小数的最大公约数。两个数的最大公约数是能够被两个数整除的最大... 查看详情

leetcode之1979.找出数组的最大公约数(代码片段)

题目题目描述给你一个整数数组nums,返回数组中最大数和最小数的最大公约数。两个数的最大公约数是能够被两个数整除的最大正整数。示例1:输入:nums=[2,5,6,9,10]输出:2解释:nums中最小的数是2nums中最... 查看详情

leetcode刷题100天(阿里云周赛)—最大数和最小数—day42(代码片段)

前言:作者:神的孩子在歌唱大家好,我叫运智描述给定一个矩阵,返回矩阵中的最大数和最小数您需要返回一个整数数组array,该数组array[0]表示最大值,而数组array[1]表示最小值。示例样例1:Input:[[1,2,3],[... 查看详情

leetcode刷题100天(阿里云周赛)—最大数和最小数—day42(代码片段)

前言:作者:神的孩子在歌唱大家好,我叫运智描述给定一个矩阵,返回矩阵中的最大数和最小数您需要返回一个整数数组array,该数组array[0]表示最大值,而数组array[1]表示最小值。示例样例1:Input:[[1,2,3],[... 查看详情

leetcode515在每个数行中找最大值[bfs二叉树]heroding的leetcode之路(代码片段)

解题思路:BFS遍历每一层,统计每一层的最大值放入数组中,代码如下:/***Definitionforabinarytreenode.*structTreeNode*intval;*TreeNode*left;*TreeNode*right;*TreeNode():val(0),left(nullptr),right(nullptr)*Tre 查看详情

leetcode1913.两个数对之间的最大乘积差(c++)(代码片段)

1913.两个数对之间的最大乘积差1题目描述2示例描述2.1示例12.2示例23解题提示4解题思路5代码详解1题目描述两个数对(a,b)和(c,d)之间的乘积差定义为(a*b)-(c*d)。例如,(5,6)和(2,7)之间的乘积差是(5*6)-(2*7)=16。给你一个整数数组nu... 查看详情

leetcode(周赛):移除字母异位词5234,最大连续楼层数6064(代码片段)

目录一、字母异位词(简单)1.题意分析2.解题思路3.完整代码4.时间复杂度和空间复杂度二、不含特殊楼层的最大连续楼层数(中等)1.题意分析2.解题思路3.完整代码4.时间复杂度和空间复杂度一、字母异位词(简单)给你一个下标从0开... 查看详情

leetcode(周赛):移除字母异位词5234,最大连续楼层数6064(代码片段)

目录一、字母异位词(简单)1.题意分析2.解题思路3.完整代码4.时间复杂度和空间复杂度二、不含特殊楼层的最大连续楼层数(中等)1.题意分析2.解题思路3.完整代码4.时间复杂度和空间复杂度一、字母异位词(简单)给你一个下标从0开... 查看详情

追寻最优美的代码leetcode421.数组中两个数的最大异或值(代码片段)

这里有leetcode题集分类整理!!!题目难度:中等题目描述:给你一个整数数组nums,返回nums[i]XORnums[j]的最大运算结果,其中0≤i≤j<n。进阶:你可以在O(n)的时间解决这个问题吗?n2暴力:... 查看详情