【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语言版
    在这里插入图片描述

相关内容

热门资讯

6月24日港股通红利低波ETF... 6月24日,港股通红利低波ETF华宝(159220)涨0.00%,成交额2308.42万元。当日份额...
田村:需将利率上调至2%左右的... 日本央行政策委员会成员田村表示,需将利率提升至2%左右的中性水平。译文内容由第三方软件翻译。声明:市...
6月24日科创医药ETF华夏(... 6月24日,科创医药ETF华夏(588130)涨1.17%,成交额2439.04万元。当日份额增加6...
6月24日科创50ETF富国(... 6月24日,科创50ETF富国(588940)涨3.99%,成交额8658.76万元。当日份额减少9...
清华新林院的“红色客厅”   周惠斌  清华新林院8号,是著名建筑学家梁思成、林徽因夫妇在1946年至1954年间居住的地方,...