代码随想录|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))
相关推荐
weixin_458580126 分钟前
如何用 blur 与 focusout 区分不冒泡与冒泡的失焦事件
jvm·数据库·python
旷世奇才李先生7 分钟前
Python爬虫实战:多线程爬取\+数据清洗\+可视化(附完整源码)
开发语言·爬虫·python
MediaTea23 分钟前
Scikit-learn:一个最小机器学习工作流示例
人工智能·python·机器学习·scikit-learn
qq_3493174826 分钟前
Layui如何修改表格单元格内文字的行间距
jvm·数据库·python
2301_7751481536 分钟前
Redis如何实现用户标签管理_利用Set结构存储唯一属性集合
jvm·数据库·python
m0_5964063741 分钟前
mysql如何配置审计日志输出_mysql audit_log_format设置
jvm·数据库·python
yi.Ist44 分钟前
2025CCPC郑州邀请赛
c++·学习·算法·acm
2301_816660211 小时前
Bootstrap框架的最小宽度限制是多少
jvm·数据库·python
少许极端1 小时前
算法奇妙屋(四十八)-单调栈
java·算法·单调栈
水木流年追梦1 小时前
CodeTop Top 300 热门题目2-最长回文子串
开发语言·人工智能·python·算法·leetcode