首页 > 其他分享 >每日一题 2024-1-22 最大交换

每日一题 2024-1-22 最大交换

时间:2024-01-22 09:00:50浏览次数:51  
标签:数字 22 示例 int 复杂度 交换 2024 字符串

1.题目(中等原题链接

给定一个非负整数,你 至多 可以交换一次数字中的任意两位。返回你能得到的最大值。

示例 1 :

输入: 2736
输出: 7236
解释: 交换数字2和数字7。

示例 2 :

输入: 9973
输出: 9973
解释: 不需要交换。

注意:

给定数字的范围是 \([0, 10^8]\)

2.解题思路

贪心,数字转换成字符串,从大到小排序,与原字符串从左到右对比,遇到不相同的就从原字符串倒着寻找这个字符,交换即可。

3.c++代码

class Solution {
public:
    int maximumSwap(int num) {
        auto s=to_string(num);
        auto t=s;
        ranges::sort(t,greater<>());
        int n=s.length();
        for(int i=0;i<n;i++){
            if(s[i]!=t[i]){
                int index=s.find_last_of(t[i]);
                swap(s[i],s[index]);
                break;
            }
        }
        return stoi(s);
    }
};

4.复杂度分析

  • 时间复杂度:\(O(lognum\cdot loglognum)\)。
  • 空间复杂度:\(O(lognum)\)。

标签:数字,22,示例,int,复杂度,交换,2024,字符串
From: https://www.cnblogs.com/sunyafeiii/p/17979247

相关文章

  • 2024最新版Xmind for Windows下载安装教程
    软件介绍:LifetimeXMindforWindows:一款全新的思维导图软件如果你是一个喜欢用思维导图来组织思路、管理项目、记录灵感的人,那么你一定不会陌生XMind这个品牌。XMind是一款在思维导图领域表现出色的软件,它拥有遍布全球的大量用户,不仅为用户提供创建思维导图的功能,而且还提供开源。......
  • Toyota Programming Contest 2024#1(AtCoder Beginner Contest 337)
    ToyotaProgrammingContest2024#1(AtCoderBeginnerContest337)A-Scoreboard代码:#include<bits/stdc++.h>usingnamespacestd;usingll=longlong;usingpii=pair<ll,ll>;#definefifirst#definesesecondusingi128=__int128_t;void......
  • 2024 礼品 Power Adapter and Connnect Specifications
    1.PowerAdapter30WChargeyourdevicesUSB-C,USB-A(Plugtypevariesbyregion,OnlyEU&UKplugareapprovedandsuitableforuseinSingapore.)Model:ILINC30WOutputpower:30WMax.Operatingtemperature:0-45°CAverageactiveefficiency:Min81.......
  • 2024-1-21
    2024-1-211787C-RemovetheBracket#include<bits/stdc++.h>#defineendl'\n'#defineintlonglongusingnamespacestd;constintN=2e5+10;intn,k;inta[N];intb[N][2];intdp[N][2];voidsolve(){ cin>>n>>k......
  • 2024最新版Xmind for MAC下载安装教程
    软件介绍XMindforMac24.0内置激活版是一款专业的思维导图软件,本版本是永久激活版,可以帮助用户更好地组织思维、管理信息、规划项目和解决问题。它提供了丰富的模板和工具,使用户能够创建美观、清晰、易于理解的思维导图。2024XmindforMac下载链接:链接:https://pan.xunlei.com/s......
  • 20240117进度汇报
     #!/usr/bin/envpythonfrom__future__importprint_functionimportcollectionsimportcsvimportloggingimportosimportSimpleITKassitkimportradiomicsfromradiomicsimportfeatureextractordefmain():outPath=r''inputCS......
  • 2024年计划
    2024年计划前言回顾上一年,零输出,实在是不应该。在新的一年给自己定下新的目标,坚持写一些文章输出,有些东西只是看了终究是不深刻,还是需要自己思考一遍,从自己的角度向别人再解释一遍,能让别人也懂,这才算是真的转化为了自己的只是体系。也许正是因为这一年没有有效输出,才会在回顾的......
  • 动态规划- leecode 122
    Problem:122.买卖股票的最佳时机II目录思路解题方法复杂度Code思路仍然是一道比较简单的动态规划,但是一上手做还是没理清楚状态是什么。一天的状态只有两种,持有股票和没有股票,这样就可以列出状态转移方程\(dp[i][j]=max(dp[i-1][j],dp[i-1][j*]+或-price[i])\),这里的j表......
  • PG DBA培训22:PostgreSQL运维诊断之操作系统分析
    本课程由风哥发布的基于PostgreSQL数据库的系列课程,本课程属于PostgreSQLOperatingSystemAnalysisandDiagnosis,学完本课程可以掌握PostgreSQL操作系统性能优化分析及工具说明,操作系统工具之top/topas,操作系统工具之vmstat,操作系统工具之iostat,操作系统工具之free/lsps/swapinf......
  • 2024.1.21模拟赛 C题解
    简要题意略思路首先有一个\(O(nk)\)的暴力dp,30pts我们可以发扬人类智慧,构造势能函数\(U_x=\sum_{未选择的点i}dis(i,x)+h_i\),当前在\(x\)点定义\(f_i\)表示走到\(i\)点时势能函数的最小值,\(s_i\)表示\(i\)到起点的距离容易发现只会跨过起点进行转移,于是\(f_i=f_j+2\tim......