LeetCode 738 单调递增的数字
生活随笔
收集整理的這篇文章主要介紹了
LeetCode 738 单调递增的数字
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
給定一個非負整數?N,找出小于或等于?N?的最大的整數,同時這個整數需要滿足其各個位數上的數字是單調遞增。
(當且僅當每個相鄰位數上的數字?x?和?y?滿足?x <= y?時,我們稱這個整數是單調遞增的。)
class Solution:def monotoneIncreasingDigits(self, N: int) -> int:num_list = []while N:num_list.append(N % 10)N //= 10num_list.reverse()pre_val = num_list[-1]has_less = [False] * len(num_list)for i in range(len(num_list) - 1, -1, -1):if num_list[i] > pre_val:has_less[i] = Truepre_val = num_list[i] - 1pre_val = min(pre_val, num_list[i])res = []flag = Falsefor i in range(len(num_list)):if flag:res.append(9)continueif not has_less[i]:res.append(num_list[i])else:res.append(num_list[i] - 1)flag = Trueans = 0for val in res:ans = ans * 10 + valreturn ans?
總結
以上是生活随笔為你收集整理的LeetCode 738 单调递增的数字的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 第九章 keyhookdll windo
- 下一篇: 详解Java算法之冒泡排序(Bubble