代码随想录|Day31|贪心06|738.单调递增的数字

738.单调递增的数字

思路:

1. 从右向左遍历

从字符串的最后一位向前遍历,即从低位到高位进行检查。这是因为当我们修改某一位数字时,可能会影响到更低位的数字。

2. 检查并修改数字

在遍历过程中,如果发现当前位数字小于其前一位(即,前一位大于后一位,破坏了单调递增的规则),我们需要对前一位数字进行调整:

  • 将前一位数字减1。
  • 将这一位及之后所有位数字设置为9。
python 复制代码
class Solution:
    def monotoneIncreasingDigits(self, n: int) -> int:
        # python的字符串不可变,因此转为list
        s = list(str(n))
        
        for i in range(len(s) - 1, 0, -1):
            # 如果前一位更大,则前一位 - 1,后序位数全部改为9
            if s[i-1] > s[i]:
                s[i-1] = str(int(s[i-1]) - 1)
                for j in range(i, len(s)):
                    s[j] = '9'

        return int(''.join(s))
相关推荐
玖釉-16 分钟前
「接雨水」问题的算法建模与双指针优化分析
c++·windows·算法
工业互联网专业17 分钟前
国潮男装微博评论数据分析系统的设计与实现 _flask+spider
python·flask·毕业设计·源码·课程设计·spider
计算机安禾18 分钟前
【算法设计与分析】第7篇:01背包问题的动态规划建模与空间优化
算法
程序员牛奶18 分钟前
[Algo-3]前缀和秒杀两道区间求和题:一维 + 二维统一模板
后端·算法
Tina学编程21 分钟前
[HOT 100]今日一练------字母异位词分组
算法·hot 100
BUG研究员_25 分钟前
python之数据分析-pandas部分
python·信息可视化·数据分析
澈20727 分钟前
图论入门:拓扑排序实战指南
算法·拓扑排序·有向图
覆东流27 分钟前
Python变量与数值类型
开发语言·后端·python
Cthy_hy32 分钟前
Python 算法竞赛:快速IO+字符串常用方法一站式整理
开发语言·python·算法
技术钱33 分钟前
字符分割器组件的使用
android·python