代码随想录算法训练营第三十七天
738.单调递增的数字
代码
# !/usr/bin/env python
# -*- coding:utf-8 -*-
# @Time : 2022.12
# @Author : hello algorithm!
# @Note : https://leetcode.cn/problems/monotone-increasing-digits/
class Solution:
"""
从后向前记录9的起始位置
"""
def monotoneIncreasingDigits(self, n: int) -> int:
s = list(map(int, list(str(n))))
nine_start = len(s)
for i in range(len(s) - 1, 0, -1):
if s[i - 1] > s[i]:
nine_start = i
s[i - 1] -= 1
result = []
for i in range(len(s)):
if i >= nine_start:
result.append('9')
else:
result.append(str(s[i]))
return int(''.join(result))
if __name__ == '__main__':
n = 332
s = Solution()
print(s.monotoneIncreasingDigits(n))
714. 买卖股票的最佳时机含手续费
代码
968.监控二叉树
代码