2024-01-04 单调递增的数字

发布时间:2024年01月10日

738. 单调递增的数字

关键点:是倒序比较,找出标志位从此往后都为9了!其实可以自己画个图尝试理解一下

例如:98,一旦出现strNum[i - 1] > strNum[i]的情况(非单调递增),首先想让strNum[i - 1]–,然后strNum[i]给为9,这样这个整数就是89,即小于98的最大的单调递增整数。

在这里插入图片描述

class Solution:
    def monotoneIncreasingDigits(self, n: int) -> int:
         # 需要加一个标志位 来确定什么时候是九?
        temp = list(str(n))
        flag = 0
        for i in range(len(temp) - 1, 0, -1):
            if temp[i - 1] > temp[i]:
                flag = i
                temp[i - 1] = str(int(temp[i - 1]) -1)
                for i in range(flag,len(temp)):
                    temp[i] = "9"
        return int("".join(temp))


文章来源:https://blog.csdn.net/niuzai_/article/details/135514383
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。