LeetCode 738. 单调递增的数字

2022-07-04  本文已影响0人  草莓桃子酪酪
题目

当且仅当每个相邻位数上的数字 x 和 y 满足 x <= y 时,我们称这个整数是单调递增的。给定一个整数 n ,返回 小于或等于 n 的最大数字,且数字呈单调递增。

例:
输入: n = 10
输出: 9

输入: n = 332
输出: 299

方法:贪心算法
class Solution(object):
    def monotoneIncreasingDigits(self, n):
        n = list(str(n))
        for i in range(len(n)-1, 0, -1):
            if int(n[i-1]) > int(n[i]):
                n[i-1] = str(int(n[i-1])-1)
                n[i:] = '9' * (len(n) - i)
        return int(''.join(n))
参考

代码相关:https://programmercarl.com/0738.%E5%8D%95%E8%B0%83%E9%80%92%E5%A2%9E%E7%9A%84%E6%95%B0%E5%AD%97.html

上一篇 下一篇

猜你喜欢

热点阅读