代码随想录算法训练营第三十七天打卡|738.单调递增的数字,714. 买卖股票的最佳时机含手续费,968.监控二叉树

代码随想录算法训练营第三十七天

  • 738.单调递增的数字
  • 714. 买卖股票的最佳时机含手续费
  • 968.监控二叉树

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.监控二叉树

代码


你可能感兴趣的:(算法,leetcode,python)