代码随想录|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))
相关推荐
蒙奇D索大19 小时前
【数据结构】排序算法精讲 | 交换排序全解:交换思想、效率对比与实战代码剖析
数据结构·笔记·考研·算法·排序算法·改行学it
sin_hielo19 小时前
leetcode 1351
数据结构·算法·leetcode
睡醒了叭19 小时前
图像分割-传统算法-边缘分割
图像处理·opencv·算法·计算机视觉
AndrewHZ19 小时前
【图像处理基石】有哪些好用的图像去噪算法可以推荐一下么?
图像处理·深度学习·算法·计算机视觉·cv·噪声
一叶知秋0620 小时前
数据结构-什么是单向链表?
数据结构·链表
雪花desu20 小时前
【Hot100-Java中等】:字母异位词分组
java·算法·leetcode·哈希表
Bdygsl20 小时前
数据结构 —— 栈
数据结构
Word码20 小时前
LeetCode283. 移动零(双指针精讲)
算法·leetcode·职场和发展
编程之路,妙趣横生20 小时前
数据结构(十一) 哈希表
数据结构
客梦20 小时前
数据结构--队列
数据结构·笔记