给你一个整数 num 。你可以对它进行如下步骤恰好 两次 :

选择一个数字 x (0 <= x <= 9).
选择另一个数字 y (0 <= y <= 9) 。数字 y 可以等于 x 。
将 num 中所有出现 x 的数位都用 y 替换。
得到的新的整数 不能 有前导 0 ,得到的新整数也 不能 是 0 。
令两次对 num 的操作得到的结果分别为 a 和 b 。

请你返回 a 和 b 的 最大差值 。

示例 1:

输入:num = 555
输出:888
解释:第一次选择 x = 5 且 y = 9 ,并把得到的新数字保存在 a 中。
第二次选择 x = 5 且 y = 1 ,并把得到的新数字保存在 b 中。
现在,我们有 a = 999 和 b = 111 ,最大差值为 888

解题思路

因为高位对数字大小的影响最大,所以优先将高位的数字变大或减小,就能得出最大值,最小值。

代码

class Solution {public int maxDiff(int num) {String tem=Integer.toString(num),tem2=Integer.toString(num);for(int i=0;i<tem.length();i++)//求出最大化数字if(tem.charAt(i)=='9') continue;else {tem= tem.replace(tem.charAt(i),'9');break;}for(int i=0;i<tem.length();i++)//求出最小化数字if(tem2.charAt(i)=='0'||tem2.charAt(i)=='1'&&tem2.charAt(0)=='1') continue;
//开头为1时,后面不能替换1,否则出现前导0else {if(i==0)//开头最小只能换成1tem2= tem2.replace(tem2.charAt(i),'1');elsetem2=tem2.replace(tem2.charAt(i),'0');break;}int b=Integer.parseInt(tem2)==0?num:Integer.parseInt(tem2);//不能为0,如果为0,变回numreturn Integer.parseInt(tem)-b;}
}

leetcode1432. 改变一个整数能得到的最大差值(贪心)相关推荐

  1. python匿名基数(lamdba):给你一个整数数组nums,如果任一值在数组中出现至少两次,返回True;如果数组中每个元素互不相同,返回False,用一行代码解决

    """ 给你一个整数数组nums,如果任一值在数组中出现至少两次,返回True:如果数组中每个元素互不相同,返回False,用一行代码解决 例: nums = [1,2, ...

  2. 算法--微软面试题:求一个整数数组元素间最小差值

    Q题目 有一个整数数组,请求出两两之差绝对值最小的值,记住,只要得出最小值即可,不需要求出是哪两个数. A解法 方案一:最愚笨的办法--暴力穷举 利用数组中所有数据两两相减的对比来求出这个最小差值. ...

  3. 给你一个整数数组 nums 。如果任一值在数组中出现 至少两次 ,返回 true ;如果数组中每个元素互不相同,返回 false 。

    示例 1: 输入:nums = [1,2,3,1] 输出:true 示例 2: 输入:nums = [1,2,3,4] 输出:false 示例 3: 输入:nums = [1,1,1,3,3,4,3, ...

  4. 给定一个未排序的数组,求如果数组排序之后,相邻数的最大差值。

    给定一个未排序的数组,求如果数组排序之后,相邻数的最大差值.要求时间复杂度为O(n),且要求不能用非基于比较的排序. 首先,这个问题明显限制了不能使用直接排序的方式求解.因为基于比较的排序时间复杂度最 ...

  5. java如何创造一个整数的类_【技术干货】Java 面试宝典:Java 基础部分(1)

    原标题:[技术干货]Java 面试宝典:Java 基础部分(1) Java基础部分: 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语法,集合的语法,io 的 ...

  6. 【趣话编程】一个整数+1引发的灾难

    简介:本故事根据Linux内核真实漏洞改编. 原文链接 帝国危机 夜幕降临,喧嚣褪去,繁忙的Linux帝国渐渐平静了下来,谁也没有想到,一场改变帝国命运的风暴正在悄然而至...... "咚咚 ...

  7. python定义一个整数变量_python循环定义多个变量的实例分析

    python循环定义多个变量方法 我们可能会时长碰到这样一个场景,计算得到一个非固定值,需要根据这个值定义相同数量个变量. 实现方式的核心是exec函数,exec函数可以执行我们输入的代码字符串. e ...

  8. c语言 输入1-7之间的一个整数,然后根据输入的数字判断是星期几,最后输出对应的星期的全称。如输入3,则输出Wednesday。

    4.输入1-7之间的一个整数,然后根据输入的数字判断是星期几,最后输出对应的星期的全称.如输入3,则输出Wednesday. C语言## ## c输入1-7之间的一个整数,然后根据输入的数字判断是星期 ...

  9. 7-30 念数字。输入一个整数,输出每个数字对应的拼音。当整数为负数时,先输出fu字。十个数字对应的拼音如下:

    输入一个整数,输出每个数字对应的拼音.当整数为负数时,先输出fu字.十个数字对应的拼音如下: 0: ling 1: yi 2: er 3: san 4: si 5: wu 6: liu 7: qi 8 ...

最新文章

  1. Caffe 关于 LetNet-5 之 lenet_solver.prototxt 解析
  2. jQuery中.html(“xxx”)和.append(xxx)的区别和不同
  3. 调优您的 LAMP 应用程序的 5 种简单方法
  4. JVM学习笔记之-垃圾回收相关概念 System.gc()的理解 内存溢出与内存泄漏 STW 垃圾回收的并行与并发 安全点与安全区域 再谈引用:强引用 软引用 弱引用 虚引用 终结器引用
  5. 要让玩家买单的facebook中文网
  6. [学习笔记] 七步从Angular.JS菜鸟到专家(3):数据绑定和AJAX [转]
  7. mysql 重置表索引_MySQL管理表和索引
  8. PyTorch入门(二)从零开始搭建一个神经网络
  9. 【专题】CSDN下载频道【2月热门资源TOP100】汇总
  10. 2012第二届GIS制图大赛——赛前培训资料(上篇)
  11. 谈谈我的感受:VS Code和Code Runner
  12. xprivacy改IMEI
  13. 计算机系统的图像编码方式,彩色图像编码方案
  14. Android使用xml自定义软键盘效果(附源码)
  15. PDF怎么转换成Excel?转后一页一个子表怎么合并?
  16. Qt中用户界面的User Interface Compiler(uic)机制的相关说明
  17. Mac Safari 此连接非私人连接
  18. 在阿里,新人如何快速上手项目管理?
  19. 学金融会python_大学生金融小白自学Python做量化投资需要注意哪些?
  20. js 字符串转化成数字

热门文章

  1. 【汇编语言】汇编语言如何编程,如何避免出错
  2. 【C++学习之路】第一章——C++核心方法总论
  3. html知识笔记(一)——head和body标签
  4. Python全栈工程师(字符串/序列)
  5. docker在Centos上的安装
  6. .NET常用工具类集锦
  7. 使用jquery解析xml
  8. 64位Ubuntu提示(...adb": error=2, 没有那个文件或目录)
  9. java/j2ee中文问题终极解决之道
  10. centos7 docker