栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

单调递增的数字-贪心738-python

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

单调递增的数字-贪心738-python

没看答案。

class Solution:
    def monotoneIncreasingDigits(self, n: int) -> int:
        def check(num):
            # 从高位到低位提取num的每一位数字
            ls = []
            while num != 0:
                ls.append(num%10)
                num = num // 10           
            ls = ls[::-1]

            # 检测相邻位是否单调递增
            tmp = ls[0]
            for i in range(1, len(ls)):
                '''
                若没有递增,则需要从这里开始把所有的低位都置0,然后再-1,因为9是最大的数字
                '''
                if ls[i] < ls[i-1]:
                    tmp = tmp * pow(10, len(ls[i:]))
                    return tmp - 1
                tmp = tmp * 10 + ls[i]
            
            return tmp       


        while n > 9:
            # 不断调用check函数,如不符合单调递增,则返回的tmp和输入的n不相等
            # 若tmp与n相等,直接返回结果
            tmp = check(n)
            if tmp == n:
                return n
            n = tmp
        
        return n
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/767606.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号