代码随想录|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))
相关推荐
田梓燊3 小时前
力扣:23.合并 K 个升序链表
算法·leetcode·链表
invicinble3 小时前
这里对java的知识体系做一个全域的介绍
java·开发语言·python
re林檎4 小时前
算法札记——4.27
算法
AI人工智能+电脑小能手4 小时前
【大白话说Java面试题】【Java基础篇】第15题:JDK1.7中HashMap扩容为什么会发生死循环?如何解决
java·开发语言·数据结构·后端·面试·哈希算法
m0_674294644 小时前
如何编写SQL存储过程性能对比_记录执行时间评估优化效果
jvm·数据库·python
数据牧羊人的成长笔记4 小时前
逻辑回归与Softmax回归
算法·回归·逻辑回归
运气好好的5 小时前
怎样开启phpMyAdmin的操作审计日志_记录每条执行的SQL
jvm·数据库·python
郑州光合科技余经理5 小时前
同城O2O海外版二次开发实战:从支付网关到配送算法
开发语言·前端·后端·算法·架构·uni-app·php
2401_871492856 小时前
Layui如何修改Layui默认的UI主题颜色(换肤功能实现)
jvm·数据库·python
南子北游6 小时前
Python学习(基础语法1)
开发语言·python·学习