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

相关内容

热门资讯

洋河股份股东会通过分红规划修订... 中访网数据  江苏洋河酒厂股份有限公司于2026年2月13日成功召开2026年第一次临时股东会。本次...
宁波东方电缆股份有限公司第七届... 证券代码:603606 证券简称:东方电缆 公告编号:2026-004宁波东方电缆股份有限公司第七...
2026,像马儿一样飞驰! (来源:新安晚报)转自:新安晚报   2026年是热闹的农历马年。   最近,生肖文创界杀出个“顶...
济南圣泉集团股份有限公司关于收... 证券代码:605589 证券简称:圣泉集团 公告编号:2026-006济南圣泉集团股份有限公司关于...
福建坤彩材料科技股份有限公司第... 证券代码: 603826 证券简称: 坤彩科技 公告编号:2026-006福建坤彩材料科技股份有限公...