leetcode1432. 改变一个整数能得到的最大差值(贪心)
给你一个整数 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. 改变一个整数能得到的最大差值(贪心)相关推荐
- python匿名基数(lamdba):给你一个整数数组nums,如果任一值在数组中出现至少两次,返回True;如果数组中每个元素互不相同,返回False,用一行代码解决
""" 给你一个整数数组nums,如果任一值在数组中出现至少两次,返回True:如果数组中每个元素互不相同,返回False,用一行代码解决 例: nums = [1,2, ...
- 算法--微软面试题:求一个整数数组元素间最小差值
Q题目 有一个整数数组,请求出两两之差绝对值最小的值,记住,只要得出最小值即可,不需要求出是哪两个数. A解法 方案一:最愚笨的办法--暴力穷举 利用数组中所有数据两两相减的对比来求出这个最小差值. ...
- 给你一个整数数组 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, ...
- 给定一个未排序的数组,求如果数组排序之后,相邻数的最大差值。
给定一个未排序的数组,求如果数组排序之后,相邻数的最大差值.要求时间复杂度为O(n),且要求不能用非基于比较的排序. 首先,这个问题明显限制了不能使用直接排序的方式求解.因为基于比较的排序时间复杂度最 ...
- java如何创造一个整数的类_【技术干货】Java 面试宝典:Java 基础部分(1)
原标题:[技术干货]Java 面试宝典:Java 基础部分(1) Java基础部分: 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语法,集合的语法,io 的 ...
- 【趣话编程】一个整数+1引发的灾难
简介:本故事根据Linux内核真实漏洞改编. 原文链接 帝国危机 夜幕降临,喧嚣褪去,繁忙的Linux帝国渐渐平静了下来,谁也没有想到,一场改变帝国命运的风暴正在悄然而至...... "咚咚 ...
- python定义一个整数变量_python循环定义多个变量的实例分析
python循环定义多个变量方法 我们可能会时长碰到这样一个场景,计算得到一个非固定值,需要根据这个值定义相同数量个变量. 实现方式的核心是exec函数,exec函数可以执行我们输入的代码字符串. e ...
- c语言 输入1-7之间的一个整数,然后根据输入的数字判断是星期几,最后输出对应的星期的全称。如输入3,则输出Wednesday。
4.输入1-7之间的一个整数,然后根据输入的数字判断是星期几,最后输出对应的星期的全称.如输入3,则输出Wednesday. C语言## ## c输入1-7之间的一个整数,然后根据输入的数字判断是星期 ...
- 7-30 念数字。输入一个整数,输出每个数字对应的拼音。当整数为负数时,先输出fu字。十个数字对应的拼音如下:
输入一个整数,输出每个数字对应的拼音.当整数为负数时,先输出fu字.十个数字对应的拼音如下: 0: ling 1: yi 2: er 3: san 4: si 5: wu 6: liu 7: qi 8 ...
最新文章
- Caffe 关于 LetNet-5 之 lenet_solver.prototxt 解析
- jQuery中.html(“xxx”)和.append(xxx)的区别和不同
- 调优您的 LAMP 应用程序的 5 种简单方法
- JVM学习笔记之-垃圾回收相关概念 System.gc()的理解 内存溢出与内存泄漏 STW 垃圾回收的并行与并发 安全点与安全区域 再谈引用:强引用 软引用 弱引用 虚引用 终结器引用
- 要让玩家买单的facebook中文网
- [学习笔记] 七步从Angular.JS菜鸟到专家(3):数据绑定和AJAX [转]
- mysql 重置表索引_MySQL管理表和索引
- PyTorch入门(二)从零开始搭建一个神经网络
- 【专题】CSDN下载频道【2月热门资源TOP100】汇总
- 2012第二届GIS制图大赛——赛前培训资料(上篇)
- 谈谈我的感受:VS Code和Code Runner
- xprivacy改IMEI
- 计算机系统的图像编码方式,彩色图像编码方案
- Android使用xml自定义软键盘效果(附源码)
- PDF怎么转换成Excel?转后一页一个子表怎么合并?
- Qt中用户界面的User Interface Compiler(uic)机制的相关说明
- Mac Safari 此连接非私人连接
- 在阿里,新人如何快速上手项目管理?
- 学金融会python_大学生金融小白自学Python做量化投资需要注意哪些?
- js 字符串转化成数字