首页 > 其他分享 >力扣 179.最大数

力扣 179.最大数

时间:2024-12-06 20:54:48浏览次数:5  
标签:string 最大数 nums int 力扣 179 排序

原题链接

题解

首先,第一感觉是直接按照字符串本身大小排序再相连;但是通过样例二可知此方法错误。

因此,我们重新思考,上面的排序方法错误的原因在于上述的排序满足 s1<=s2,但是不满足s1+s2<=s2+s1(我们称之为加法的传递原则)。此时我们重新定义排序规则:当s1+s2<=s2+s1时就排序,否则保持。

code

 

class Solution {
public:
    static bool cmp(string a,string b){
        string one=a+b;
        string two=b+a;
        if (one<=two) return false;
        return true;
    }
    string largestNumber(vector<int>& nums) {
        int cnt=nums.size();
        string s="";
        string ss[105];
        for (int i=0;i<cnt;i++){
            ss[i]=to_string(nums[i]);
        }
        sort(ss,ss+cnt,cmp);

        
        for (int i=0;i<cnt;i++){
            if (s=="" && i<cnt-1 && ss[i]=="0") continue; 
            s+=ss[i];
        }
        return s;
    }
};

 

标签:string,最大数,nums,int,力扣,179,排序
From: https://www.cnblogs.com/purple123/p/18591415

相关文章

  • 力扣 LeetCode 51. N皇后(Day14:回溯算法)
    解题思路:每次进入backtracking都表示进入下一行每个backtracking中处理当前行的各个列,看各列是否合法isValid中因为是一行一行向下遍历的,所以对应的当前行一定满足条件,没有放置过其他皇后,只需要看对应的列是否满足即可是否符合需要看左上45°和右上45°,之所以是往上看,......
  • 力扣103. 二叉树的锯齿形层次遍历
    链接:103.二叉树的锯齿形层序遍历-力扣(LeetCode)vector<vector<int>>vec;if(root==nullptr)returnvec;queue<TreeNode*>que;que.push(root);//true代表从左到右//false代表从右到左boolflag=true;while(!q......
  • 【力扣】3274. 检查棋盘方格颜色是否相同
    一、题目给你两个字符串coordinate1和coordinate2,代表8x8国际象棋棋盘上的两个方格的坐标。以下是棋盘格的参考图:如果这两个方格颜色相同,返回true,否则返回false。坐标总是表示有效的棋盘方格。坐标的格式总是先字母(表示列),再数字(表示行)。示例:输入:coordinate1......
  • 【力扣热题100】—— Day3.反转链表
    你不会永远顺遂,更不会一直年轻,你太安静了,是时候出发了                                                                                        —— 24.12.2206.反转链表......
  • 最大数max(x,y,z)
    描述已知:m=max(a,b,c)/(max(a+b,b,c)×max(a,b,b+c))输入a,b,c,求m。把求三个数的最大数max(x,y,z)分别定义成函数和过程来做。输入描述输入a,b,c。输出描述求m,保留到小数点后三位。用例输入1 123用例输出1 0.200#include<bits/stdc++.h>usingnamespace......
  • 力扣15题——蓝桥杯每日一练(双指针+排序)
    #题目给你一个整数数组nums,判断是否存在三元组[nums[i],nums[j],nums[k]]满足i!=j、i!=k且j!=k,同时还满足nums[i]+nums[j]+nums[k]==0。请你返回所有和为0且不重复的三元组。注意:答案中不可以包含重复的三元组。#思路通过排序+双指针完成解题#......
  • 力扣刷题TOP101:10.BM12 单链表的排序
    目录:目的思路复杂度记忆秘诀python代码目的{1,3,2,4,5}排序变成{1,2,3,4,5}思路这个任务是将无序单链表变成有序表。推荐使用归并算法。可以理解为汉武帝的推恩令政策(分治思想)。将大块封地分成小块封地(分割链表),对小封地进行整顿,确保符合中央标准(分到最小),将整治......
  • 力扣面试题 28 - 配对交换
    题目:配对交换。编写程序,交换某个整数的奇数位和偶数位,尽量使用较少的指令(也就是说,位0与位1交换,位2与位3交换,以此类推)。示例1:输入:num=2(或者0b10)输出1(或者0b01)示例2:输入:num=3输出:3提示:num的范围在[0,2^30-1]之间,不会发生整数溢出。思路:首先我们......
  • 【二分查找】力扣 275. H 指数 II
    一、题目二、思路h指数是高引用引用次数,而citations数组中存储的就是不同论文被引用的次数,并且是按照升序排列的。也就是说h指数将整个citations数组分成了两部分,左半部分是不够引用h次的论文,右半部分论文的引用次数都是大于等于h的。因此,可以采用二分查找的......
  • leetcode 1456. 定长子串中元音的最大数目
    1456.定长子串中元音的最大数目法一:借助队列classSolution{public:intmaxVowels(strings,intk){intsize=s.size(),resMax=0;queue<bool>qVowel;for(inti=0;i<k;i++){if(s[i]=='a'||s[i]==......