670. 最大交换

题目:

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


示例 1 :

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


示例 2 :

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


注意:

给定数字的范围是 [0, 108]


来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/maximum-swap
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。


思路:

先将数字转换为字符串或者数据列表l1,从后往前遍历这个列表,讲列表数据从大到小排序存在另外一个列表l2中,(从后往前遍历的原因是如果输入为3772,结果肯定希望是7732而不是7372)两者正向遍历比较,列表逐一对比,直到l1中某一下标对应的元素小于l2的,将l1该位置的元素与l2中元素(l1后序遍历找到该元素在l1出现位置)互换即可。


代码:

class Solution {
public:int maximumSwap(int num) {string charArray = to_string(num);int n = charArray.size();int maxNum = num;for (int i = 0; i < n; i++) {for (int j = i + 1; j < n; j++) {swap(charArray[i], charArray[j]);maxNum = max(maxNum, stoi(charArray));swap(charArray[i], charArray[j]);}}return maxNum;}
};

入门力扣自学笔记150 C++ (题目编号670)相关推荐

  1. 入门力扣自学笔记118 C++ (题目编号1413)

    1413. 逐步求和得到正数的最小值 题目: 给你一个整数数组 nums .你可以选定任意的 正数 startValue 作为初始值. 你需要从左到右遍历 nums 数组,并将 startValue ...

  2. 入门力扣自学笔记52 C++ (题目编号929)

    929. 独特的电子邮件地址 题目: 每个 有效电子邮件地址 都由一个 本地名 和一个 域名 组成,以 '@' 符号分隔.除小写字母之外,电子邮件地址还可以含有一个或多个 '.' 或 '+' . 例如 ...

  3. 20210325:力扣递归,回溯类型题目合集

    力扣递归,回溯类型题目合集 题目 思路与算法 代码实现 写在最后 题目 子集 2. 90. 子集 II 3. 40. 组合总和 II 4. 22. 括号生成 思路与算法 子集:注释的很详细,递归生成子 ...

  4. 力扣题目归类,顺序刷题不再难

    目录 介绍 前奏-基础篇 中篇-链表.树的相关操作 进阶-回溯.动态规划 脑筋急转弯 介绍 大家好,相信很多人都知道刷力扣的重要性,但是如果不能将题目很好的归类整理专一练习,而是东做一道西做一道,那么 ...

  5. 力扣刷题记录-回溯算法相关题目

    首先介绍一下回溯算法 回溯通常在递归函数中体现,本质也是一种暴力的搜索方法,但可以解决一些用for循环暴力解决不了的问题,其应用有: 1.组合问题: 例:1 2 3 4这些数中找出组合为2的组合,有1 ...

  6. 力扣数据库题目刷题日记

    一个准备秋招的菜鸟 此前已经在力扣上面刷过一些题目,从今天开始记录刷题 1. Day1 96/97题 难度:中等 解题思路 首先需要读懂题目的意思,必须要保证容量大于相同分数的人数的同时,选择最低的分 ...

  7. 教你创建电脑、手机同步的markdown云笔记--力扣刷题力荐!

    开篇先致歉 其他不谈,开篇必须先给各位读者道个歉,年后工作上比较忙,加上最近闲暇的时间都用来在力扣上刷算法题了,导致公众号断更有些严重啊.再加上年后将健身减重提上了日程,时间上就更显的捉襟见肘了. 不 ...

  8. 力扣- -正则表达式匹配

    力扣- -正则表达式匹配 文章目录 力扣- -正则表达式匹配 一.题目描述 二.分析 方法一:Dp函数 明确状态和选择 确定状态转译方程 确定base case 完整代码 方法二:Dp table 明 ...

  9. 力扣--- 滑动谜题

    力扣- 滑动谜题 文章目录 力扣--- 滑动谜题 一.题目描述 二.问题分析 三.代码 一.题目描述 二.问题分析 对于这种计算 最小步数的问题,我们就要敏感地想到 BFS 算法. 这个题目转化成 B ...

最新文章

  1. 基于OpenLayers+rbush实现高德轨迹样式
  2. 分布式系统理论之两阶段提交协议
  3. linux正则表达式BRE
  4. python 元组 字典 列表 序列化与反序列化
  5. 深入理解 C 指针阅读笔记 -- 第二章
  6. java list 拼接 字符串数组_把数组所有元素排序,并按照“参数=参数值”的模式用“”字符拼接成字符串...
  7. C++: byte和int的相互转化
  8. [LA3026]Period
  9. linux中一条命令将文件转换为UTF-8格式-解决乱码
  10. createsolidcaret 后 很快就不闪烁了_【文献推送】Adv. Mater. | 单分散硅基闪烁体实现X射线介导的深层肿瘤光动力治疗...
  11. 最新CleanMyMac支持MacOS 12.x
  12. C#调用新浪微博API生成RSS资源文件
  13. 10的负2次方用计算机怎么算,2的负二次方等于多少(进制转换计算器)
  14. vss服务器状态失败_VSS错误自动修复
  15. matlab锥圆球体_MATLAB锥齿轮设计
  16. 杂记十四:DataFactory使用教程
  17. CDN是什么?与DNS有什么关系?及其原理
  18. wim工具扫描linux磁盘,[V1.30.2011.501版]WimTool -- Wim文件的图形视窗处理工具[无忧首发]...
  19. 炫舞滑板机器人_教程丨自制鬼畜滑板机器人,用纸壳就能做
  20. 在linux系统上怎么架设服务器吗,Linux下各种服务器的架设详解

热门文章

  1. Discuz!教程之修改帖子下方“来自: XX手机客户端”的链接地址
  2. 【English学习】6个老外最常用的口语表达
  3. datatype未定义是什么意思_vue里面的methods写了方法,为什么渲染的时候还是报未定义...
  4. 全球计算机专业排名2015年,2015年US News美国大学计算机专业 Computer Science排名?...
  5. 扎克曼的《信息系统架构框架》
  6. win安装MPE环境遇到的问题
  7. 腾讯云CentOS如何使用root用户远程登录实例
  8. picasa 整理照片_使用AddToPicasa将照片快速保存到您的Picasa网络相册中
  9. python编程括号怎么打_在python中打印有效的括号组合
  10. 企业常用的服务器的型号,企业中最常用的服务器是