当前位置: 首页 > wzjs >正文

秦皇岛制作网站探马scrm

秦皇岛制作网站,探马scrm,今天俄乌战争最新消息新闻,佛山网站建设模板给你一个整数 num 。你可以对它进行以下步骤共计 两次&#xff1a; 选择一个数字 x (0 < x < 9). 选择另一个数字 y (0 < y < 9) 。 数字 y 可以等于 x 。 将 num中所有出现 x 的数位都用 y 替换。 令两次对 num 的操作得到的结果分别为 a 和 b 。 请你返回 a 和 b…

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

选择一个数字 x (0 <= x <= 9).
选择另一个数字 y (0 <= y <= 9) 。
数字 y 可以等于 x 。
将 num中所有出现 x 的数位都用 y 替换。
令两次对 num 的操作得到的结果分别为 a 和 b 。
请你返回 a 和 b 的 最大差值 。

注意,新的整数(a 或 b)必须不能 含有前导 0,并且 非 0。

思路

贪心
对于最大值a:
肯定是越高位越大越好,所以从最高位开始往后看,第一个不是9的位,这一位数全改成9。

比如 9868 —> 9969

对于最小值b:
肯定是越高位越小越好,
但是有个条件,不能为0,也不能有前置0,
所以不能直接从最高位开始看,要先看最高位是不是1,
①如果不是1,就直接把他和它相同的改成1就行了;
②如果是1,就从后看第一个不是1也不是0的改成0。(这里不能直接按不是0的都改成0来算,因为不是0也包括了1,要是1的话会把第一位的1也改成0,就有前置0了)

比如 120 —> 100,就不能把第一位的1改成0,要不然就是 020 有前置0了。
比如 110 —> 110,就不能把第二位的1改成0,要不然就是000了。

代码

①给的是int型的,因为要挨位访问,所以先转成String,再转成char[],因为char[]访问效率比String高。
②然后因为有 “将num中所有出现 x 的数位都用 y 替换" 这个操作,可以单独封装一下,用String的replace方法,这个方法不会改变原String,只会返回新String。
③a和b要初始化都等于num,这样防止两次都没有操作的情况
比如 999、111、100

class Solution {public int replace(String str, char c, char toWhat){String temp = str.replace(c, toWhat);   // 不会改变原字符串return Integer.valueOf(temp);}public int maxDiff(int num) {String numStr = String.valueOf(num);char[] numChar = numStr.toCharArray();int a=num, b=num;     // 初始值num,防止999和000或者111之类的情况// 找最大for(char numC : numChar){if(numC != '9'){a = replace(numStr, numC, '9');break;}}// 找最小if(numChar[0] != '1'){b = replace(numStr, numChar[0], '1');}else{for(int i=1; i<numChar.length; i++){if(numChar[i]!='0' && numChar[i]!='1'){b = replace(numStr, numChar[i], '0');break;}}}return a-b;}
}

时间复杂度:O(logN)
空间复杂度:O(logN)

http://www.dtcms.com/wzjs/829074.html

相关文章:

  • 百度联盟怎么做网站加入网站建设修改教程视频
  • 一个公司设计网站怎么做的网站推广网络推广
  • 厦门建行网站首页seo常用分析的专业工具
  • 石家庄招聘哪个网站做的好宁波产城生态建设集团网站
  • 长沙哪个公司做网站聚成网站建设
  • 电商企业网站建设情况python网页开发
  • 如何进行网站设计规划小程序开发合同
  • 盐城哪家专业做网站做推广都有哪些网站
  • 怎样在潇湘书院网站做兼职网站域名注册步骤
  • 专业网站运营托管北京房产网最新楼盘
  • 网站建设 陕icp湘潭做网站 磐石网络很专业
  • 国内可以使用的自己建站wordpress全文搜索
  • 招标网站开发文档西安seo主管
  • 网站开发需要大学吗做窗帘的效果图网站
  • 花瓣按照哪个网站做的二维码在线制作免费
  • 重庆网站备案规则注册网站费属于什么费用
  • 网站经营与建设网站后台文章字体
  • 北京网站制作收费标准平面设计公司怎么找客户
  • 网站建设注意哪些注意事项电商平台软件开发公司
  • 做金融平台网站需要多少钱如何建设公司企业安全文化
  • 山东做网站公司有哪些青岛手机网站制作
  • 福州建网站哪家公司好网站查询备案
  • 厦门市建设工程在哪备案网站电商图片制作软件
  • 厦门450元网站建设公司六安网站设计公司
  • 济源市建设工程管理处网站wordpress 360字体大小
  • 网站不允许上传文件kingcms 暂未创建网站首页
  • 网站代码模板编写滦平住房和城乡建设厅网站
  • 哈巴狗模式网站开发长沙网站建设kaodezhu
  • 广告网站模板科技改变生活
  • 企业电子商务网站建设的最终目的vi设计的目的和意义