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

示例 1 :

输入: 2736

输出: 7236

解释: 交换数字2和数字7。

示例 2 :

输入: 9973

输出: 9973

解释: 不需要交换。

思路 使得高位(靠左的)的值更大

s[i]与后面的最大值(若有多个最大值,则取位次最小的,靠右的),交换位置

 1/** 2 * @param {number} num 3 * @return {number} 4 */ 5var maximumSwap = function(num) { 6    var s = num.toString() 7 8    for(var i=0; i<s.length; i++) { 9        var init = s[i]10        var max = init11        for(var j=i+1; j<s.length; j++) {12            if(s[j] > max) max = s[j]13        }14        if(max !== init) {15            s = s.replace(init, max)16            s = reverseString(s)17            s = s.replace(max, init) // 保证replace的是位次最小的18            s = reverseString(s)19            break20        }21    }2223    return Number(s)24}2526function reverseString(s){27    return s.split('').reverse().join('')28}

转载于:https://www.cnblogs.com/rencoo/p/9735197.html

670. 最大交换相关推荐

  1. 力扣解题思路:670. 最大交换/parseInt和valueOf的区别

    670. 最大交换 思路: 看到这题我第一反应就是想到下一个排列,不过很快发现这两题并没办法使用同一种思路,因为这一题是要求最大,且只能交换一次,相当于多了很多别的限制. 初步的思路是,直接将数组排序 ...

  2. 力扣 670. 最大交换

    670. 最大交换 难度中等77收藏分享切换为英文关注反馈 给定一个非负整数,你至多可以交换一次数字中的任意两位.返回你能得到的最大值. 示例 1 : 输入: 2736 输出: 7236 解释: 交换 ...

  3. Leetcode 670. 最大交换 C++

    Leetcode 670. 最大交换 题目 给定一个非负整数,你至多可以交换一次数字中的任意两位.返回你能得到的最大值. 测试样例 示例 1 : 输入: 2736 输出: 7236 解释: 交换数字2 ...

  4. LeetCode每日一题——670. 最大交换

    LeetCode每日一题系列 题目:670. 最大交换 难度:中等 文章目录 LeetCode每日一题系列 题目 示例 思路 题解 题目 给定一个非负整数,你至多可以交换一次数字中的任意两位.返回你能 ...

  5. 【算法】力扣670最大交换

    某天,我的朋友给我发来一道题,力扣的670 这道题一开始把我难住了,结果是我眼花看错题意了,后来我用了最简单的类似冒泡算法解决了.思路类似于冒泡算法,相邻两两交换,使用了StringBuffer这种采 ...

  6. LeetCode 670. 最大交换

    1. 题目 给定一个非负整数,你至多可以交换一次数字中的任意两位. 返回你能得到的最大值. 示例 1 : 输入: 2736 输出: 7236 解释: 交换数字2和数字7.示例 2 : 输入: 9973 ...

  7. LeetCode 670 最大交换 (暴力+贪心、Python)

    同个人网站 https://www.serendipper-x.cn/,欢迎访问 ! 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/maxim ...

  8. 【670. 最大交换】

    来源:力扣(LeetCode) 描述: 给定一个非负整数,你至多可以交换一次数字中的任意两位.返回你能得到的最大值. 示例 1 : 输入: 2736 输出: 7236 解释: 交换数字2和数字7. 示 ...

  9. leetcode 670. 最大交换 python

    题目描述:  题解:贪心 1.将输入的整数num转为字符串形式num_str. 2.从num_str第一个位置开始,对每个位置i,判断其之后的位置有没有比num_str[i]大的字符greater_n ...

最新文章

  1. B站疯传!拿走不谢!最全面的JAVA面试材料!完整版开放下载,叫我好人!
  2. 北师大毕彦超:AI和人类感知的相同点和不同点
  3. 一个操作系统的实现(1)
  4. Tensorflow之flags的用法介绍
  5. python所有的父类_python获取父类的子类(遍历,递归),并循环执行所有子类的某一方法...
  6. mysql一秒查询次数_单个select语句实现MySQL查询统计次数
  7. 复变函数系列(三 ) - 复变函数的积分
  8. mysql存儲過程返回值_java如何获得mysql存储过程的返回值
  9. poj 2773(容斥原理)
  10. sql 时间字符串转换
  11. 论文笔记_SLAM_Review_Visual simultaneous localization and mapping: a survey
  12. 微信公众号php支付设置回调,php微信公众号支付讲解(JSAPI)
  13. linux下配置nginx+rtmp+obs推流
  14. 苹果手机怎么投屏不了,苹果手机怎么投屏电脑
  15. boost电路输出电流公式_boost计算公式
  16. Python Re正则表达式之group(0)、group(1)
  17. H3C基础配置文档抄录10-ACL和QoS配置
  18. 插本计算机教程,广东专插本复习方法
  19. 金星DEM数据介绍与下载教程
  20. 苍穹插件常用事件与方法

热门文章

  1. Angular介绍、安装Angular Cli、创建Angular项目入门教程
  2. Android中Handler消息传递机制应用之子线程不允许操作主线程的组件
  3. C#中将list使用ProtoBuf进行序列化并使用SharpZipLib进行压缩
  4. 一行Java代码判断文件夹是否存在,不存在则新建
  5. VueRouter的安装以及基本使用
  6. Tkinter的Checkbutton组件的简单使用
  7. VUE—从入门到飞起(三)
  8. Flutter创建圆圈图标按钮
  9. java观察者模式在spring中的应用_利用spring自己实现观察者模式
  10. 什么是用户智能,它与数据有什么关系?