代码随想录|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))
相关推荐
free-elcmacom12 分钟前
深度学习<4>高效模型架构与优化器的“效率革命”
人工智能·python·深度学习·机器学习·架构
liliangcsdn30 分钟前
python模拟beam search优化LLM输出过程
人工智能·python
源代码•宸1 小时前
Leetcode—620. 有趣的电影&&Q3. 有趣的电影【简单】
数据库·后端·mysql·算法·leetcode·职场和发展
王琦03181 小时前
Python 函数详解
开发语言·python
胡伯来了1 小时前
13. Python打包工具- setuptools
开发语言·python
2301_800256111 小时前
地理空间数据库中的CPU 和 I/O 开销
数据库·算法·oracle
小鸡吃米…2 小时前
Python 中的多层继承
开发语言·python
中國移动丶移不动2 小时前
Python MySQL 数据库操作完整示例
数据库·python·mysql
落叶,听雪2 小时前
AI建站推荐
大数据·人工智能·python
ZAz_2 小时前
DAY 45 预训练模型
python