【LeetCode每日一题】——1323.6 和 9 组成的最大数字
创始人
2024-05-29 16:39:43

文章目录

  • 一【题目类别】
  • 二【题目难度】
  • 三【题目编号】
  • 四【题目描述】
  • 五【题目示例】
  • 六【解题思路】
  • 七【题目提示】
  • 八【时间频度】
  • 九【代码实现】
  • 十【提交结果】

一【题目类别】

  • 贪心算法

二【题目难度】

  • 简单

三【题目编号】

  • 1323.6 和 9 组成的最大数字

四【题目描述】

  • 给你一个仅由数字 6 和 9 组成的正整数 num。
  • 你最多只能翻转一位数字,将 6 变成 9,或者把 9 变成 6 。
  • 请返回你可以得到的最大数字。

五【题目示例】

  • 示例 1:

    • 输入:num = 9669
    • 输出:9969
    • 解释:
      • 改变第一位数字可以得到 6669 。
      • 改变第二位数字可以得到 9969 。
      • 改变第三位数字可以得到 9699 。
      • 改变第四位数字可以得到 9666 。
      • 其中最大的数字是 9969 。
  • 示例 2:

    • 输入:num = 9996
    • 输出:9999
    • 解释:将最后一位从 6 变到 9,其结果 9999 是最大的数。
  • 示例 3:

    • 输入:num = 9999
    • 输出:9999
    • 解释:无需改变就已经是最大的数字了。

六【解题思路】

  • 本题思路较简单,只需要从高位向低位搜索,遇到666就换成999即可,因为高位的值被替换后的值肯定大于低位被替换后的值
  • 当然,具体实现可以有两种方法:
    • ① 把数字的每一位都取出来,然后从高位到低位扫描,遇到666就替换为999即可,最后再将数字拼装返回
    • ② 从高位到低位扫描,不过采用的方法是取模和除法,遇到666就加对应位次的3kkk(kkk表示对应位次000的个数),这样也能实现666到999的转换
  • 最后返回结果即可

七【题目提示】

  • 1<=num<=1041 <= num <= 10^41<=num<=104
  • num每一位上的数字都是6或者9。num 每一位上的数字都是 6 或者 9 。num每一位上的数字都是6或者9。

八【时间频度】

  • 时间复杂度:O(1)O(1)O(1)
  • 空间复杂度:O(1)O(1)O(1)

九【代码实现】

  1. Java语言版
class Solution {public int maximum69Number (int num) {if(num / 1000 == 6){return num + 3000;}else if(num % 1000 / 100 == 6){return num + 300;}else if(num % 100 / 10 == 6){return num + 30;}else if(num % 10 == 6){return num + 3;}return num;}
}
  1. C语言版
int maximum69Number (int num)
{if(num / 1000 == 6){return num + 3000;}else if(num % 1000 / 100 == 6){return num + 300;}else if(num % 100 / 10 == 6){return num + 30;}else if(num % 10 == 6){return num + 3;}return num;
}
  1. Python版
class Solution:def maximum69Number (self, num: int) -> int:if num // 1000 == 6:return num + 3000elif num % 1000 // 100 == 6:return num + 300elif num % 100 // 10 == 6:return num + 30elif num % 10 == 6:return num + 3return num

十【提交结果】

  1. Java语言版
    在这里插入图片描述

  2. C语言版
    在这里插入图片描述

  3. Python语言版
    在这里插入图片描述

相关内容

热门资讯

金帝股份跌0.69%,成交额3... 12月2日,金帝股份跌0.69%,成交额3212.79万元,换手率1.85%,总市值53.62亿元。...
泰鸿万立跌0.76%,成交额1... 12月2日,泰鸿万立跌0.76%,成交额1773.07万元,换手率1.20%,总市值66.89亿元。...
新相微跌0.94%,成交额1.... 12月2日,新相微跌0.94%,成交额1.35亿元,换手率2.10%,总市值92.23亿元。异动分析...
美信科技涨0.31%,成交额4... 12月2日,美信科技涨0.31%,成交额4552.86万元,换手率4.12%,总市值26.47亿元。...
宏工科技跌1.77%,成交额2... 12月2日,宏工科技跌1.77%,成交额2.04亿元,换手率9.67%,总市值101.06亿元。异动...