首页 > 编程语言 >代码随想训练营第三十七天(Python)| 738.单调递增的数字、968.监控二叉树

代码随想训练营第三十七天(Python)| 738.单调递增的数字、968.监控二叉树

时间:2023-11-17 23:45:42浏览次数:42  
标签:right return Python self int 第三十七 str left 二叉树

738.单调递增的数字

class Solution:
    def monotoneIncreasingDigits(self, n: int) -> int:
        # 主要思路当前数字比前面数字小时。前面数字 -1,当前数字变2为 9
        str_n = str(n)
        for i in range(len(str_n)-1, 0, -1):
            if str_n[i] < str_n[i-1]:
                str_n = str_n[:i-1] + str(int(str_n[i-1]) - 1) + len(str_n[i:]) * "9"
        return int(str_n)

968.监控二叉树

class Solution:
    def minCameraCover(self, root: Optional[TreeNode]) -> int:
        # 0 代表无覆盖
        # 1 代表有摄像头
        # 2 代表有覆盖
        self.res = 0
        if self.travesal(root) == 0:
            self.res += 1
        return self.res

    def travesal(self, cur):
        if not cur:
            return 2

        # 左
        left = self.travesal(cur.left)
        # 右
        right = self.travesal(cur.right)

        # 分析当前节点的状态
        # 中
        # 左右都被覆盖
        if left == 2 and right == 2:
            return 0

        # 左或者右有一个没有被覆盖
        if left == 0 or right == 0:
            self.res += 1
            return 1

        # 左或者右右摄像头
        if left == 1 or right == 1:
            return 2

标签:right,return,Python,self,int,第三十七,str,left,二叉树
From: https://www.cnblogs.com/yixff/p/17834226.html

相关文章

  • 代码训练营第三十八天(Python)| 509. 斐波那契数、70. 爬楼梯、746. 使用最小花费爬楼梯
    509.斐波那契数1、动态规划classSolution:deffib(self,n:int)->int:ifn<=1:returnn#dp[i]代表第i个数的斐波那契值dp=[0]*(n+1)dp[0]=0dp[1]=1foriinrange(2,n+1):......
  • Python 使用 MQTT
    官方参考文档:https://docs.emqx.com/zh/cloud/latest/connect_to_deployments/python_sdk.html参考文档:https://zhuanlan.zhihu.com/p/187481769发布消息首先定义一个while循环语句,在循环中我们将设置每秒调用MQTT客户端 publish 函数向 /python/mqtt 主题发送消息。......
  • Python8days
    如何开启事务介绍常见的字段类型和参数图书管理系统MVC和MTV模式创建多对多表关系的三种方式AJAx的介绍Ajax的案例—————————————————————————————————————————————————————————————————————————......
  • Python:Pandas中df.iloc和df.loc区别
    1df.iloc官方文档中定义为“基于整数位置的索引,用于按位置选择。”df.iloc就是只根据行列号对数据进行切片或选择。当作数组取数就行。df.iloc[raw,col]:第一个参数raw表示行选,第二个参数表示列选,都必须是整数。importpandasaspdmydict=[{'a':1,'b':2,'d':4},......
  • python实现socket端口监听
    #服务端importsocketip_port=('127.0.0.1',1234)sk=socket.socket(socket.AF_INET,socket.SOCK_DGRAM,0)sk.bind(ip_port)whileTrue:data=sk.recv(1024).strip().decode()print(data)ifdata=="exit":print(&qu......
  • 基于python的影片数据爬取与数据分析-计算机毕业设计源码+LW文档
    摘 要快速发展的社会中,人们的生活水平都在提高,生活节奏也在逐渐加快。为了节省时间和提高工作效率,越来越多的人选择利用互联网进行线上打理各种事务,通过线上管理影片数据爬取与数据分析也就相继涌现。与此同时,人们开始接受方便的生活方式。他们不仅希望页面简单大方,还希望操作方......
  • python包管理pip常用
    python包管理pip常用 1、pip安装包指定源pipinstall[package]-ihttps://pypi.douban.com/simple 2、pip常用命令 Commandspip常用Commands install  Installpackages download  Downloadpackagesuninstall Uninstallpackagesfreeze Ou......
  • 源码安装Python
    本文使用的Linux发行版本为AlmaLinux9.264位(CentOS停止更新后的完美替代发行版本)。本文安装的Python版本为3.12.0,其他版本方法类似。准备工作更新系统。dnf-yupdate安装Python前,需确认当前系统是否已安装Python以及对应版本。不建议卸载原有Python版本,可能被应用......
  • 源码安装Python
    本文使用的Linux发行版本为AlmaLinux9.264位(CentOS停止更新后的完美替代发行版本)。本文安装的Python版本为3.12.0,其他版本方法类似。准备工作更新系统。dnf-yupdate安装Python前,需确认当前系统是否已安装Python以及对应版本。不建议卸载原有Python版本,可能被应用......
  • 06_二叉树的右视图
    二叉树的右视图给定一个二叉树的根节点root,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。示例1:输入:[1,2,3,null,5,null,4]输出:[1,3,4]示例2:输入:[1,null,3]输出:[1,3]示例3:输入:[]输出:[]提示:二叉树的节点个数的范......