代码随想录算法训练营day39 | 738.单调递增的数字、968.监控二叉树

738.单调递增的数字

暴力解法超时

贪心解法:从后向前遍历,如果出现strNum[i - 1] > strNum[i]的情况(非单调递增),让strNum[i - 1]--,然后strNum[i]给为9

class Solution:def monotoneIncreasingDigits(self, n: int) -> int:str_num = list(str(n))flag = len(str_num)for i in range(len(str_num)-1, 0, -1):if str_num[i-1] > str_num[i]:flag = istr_num[i-1] = str(int(str_num[i-1]) - 1)for i in range(flag, len(str_num)):str_num[i] = '9'return int("".join(str_num))

968.监控二叉树

从叶子节点开始遍历,使用后序遍历 左右中

设置三种状态

  • 0 无覆盖
  • 1 有摄像头
  • 2 有覆盖

空节点设置为有覆盖。每次根据左右节点状态判定当前状态,三种状态一共9种组合,一一判断,写代码时综合一下。

最后还需要根据返回的根节点状态判定是否需要添加摄像头

class Solution:def __init__(self):self.result = 0def minCameraCover(self, root: Optional[TreeNode]) -> int:if self.traversal(root) == 0:self.result += 1return self.resultdef traversal(self, cur):if not cur:return 2left = self.traversal(cur.left)right = self.traversal(cur.right)if left == 2 and right == 2:return 0elif left == 0 or right == 0:self.result += 1return 1else:return 2

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/19607.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

道歉性质的《情况说明》应如何写,才能赢得对方的谅解?

道歉性质的《情况说明》应如何写,才能赢得对方的谅解? ——从“成都地铁被诬陷偷拍案”两涉事女的《情况说明》中想到了什么? 据九派新闻报道,在“成都地铁被诬陷偷拍案”中,近日两名当事女子罗某某和曾某某首次公开回…

网关(GateWay)- 快速使用

引入依赖 <!-- gateway --> <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-gateway</artifactId> </dependency> 路由配置 server:port: 8088 spring:application:name: api-gatew…

零基础学会asp.net做网站/公众号/小程序之三:实战初体验(简单程序教学)

关注我&#xff0c;持续分享逻辑思维&管理思维&面试题&#xff1b; 可提供大厂面试辅导、及定制化求职/在职/管理/架构辅导&#xff1b; 博主在互联网大厂深耕近二十年&#xff0c;从一线码农做起&#xff0c;到人工智能公司副总裁。希望把过往经验总结出来&#xff0…

Flutter 中的 SliverFixedExtentList 小部件:全面指南

Flutter 中的 SliverFixedExtentList 小部件&#xff1a;全面指南 Flutter 是一个由 Google 开发的跨平台 UI 框架&#xff0c;它允许开发者使用 Dart 语言来构建高性能、美观的移动、Web 和桌面应用。在 Flutter 的丰富组件库中&#xff0c;SliverFixedExtentList 是一个高效…

简述:ES6中Generator函数与yield关键字

ES6&#xff1a;Generator 函数 与 yield 关键字 一、Generator 函数 与 yield 引入 语法上&#xff1a;首先可以把它理解成&#xff0c;Generator 函数是一个状态机&#xff0c;封装了多个内部状态。 执行 Generator 函数会返回一个遍历器对象&#xff0c;也就是说&#xff0…

MySQL 命令总结篇-思维导图

一些常用命令以思维导图形式总结在这里了&#xff0c;掌握这些进行MySQL基本操作绝对没问题&#xff0c;加油&#xff01;友友们可以根据这些思维导图进行知识总结。 目录 一、快速上手 二、SQL 语句分类&#xff08;DDL、DML、DQL、DCL&#xff09; 三、数据类型 四、约束…

探索AI去衣技术中的反射应用

在当今数字时代&#xff0c;人工智能&#xff08;AI&#xff09;技术的飞速发展已经渗透到了我们生活的方方面面。其中&#xff0c;图像处理和计算机视觉作为AI的重要分支&#xff0c;正不断推动着创新应用的边界。今天&#xff0c;我们要探讨的是一个颇具争议但又技术上颇为有…

MySQL相关知识点梳理

一、MySQL架构 连接层&#xff1a;处理连接&#xff0c;身份验证等。核心服务层&#xff1a;包含权限判断、查询缓存、解析器、查询优化器、执行引擎等。存储引擎层&#xff1a;负责管理数据的底层组件&#xff0c;定义了如何存储、索引和检索数据。数据存储层&#xff1a;与文…

[Algorithm][动态规划][子序列问题][最长递增子序列][摆动序列]详细讲解

目录 0.子序列 vs 子数组1.最长递增子序列1.题目链接2.算法原理详解3.代码实现 2.摆动序列1.题目链接2.题目链接3.代码实现 0.子序列 vs 子数组 子序列&#xff1a; 相对顺序是跟源字符串/数组是一致的但是元素和元素之间&#xff0c;在源字符串/数组中可以是不连续的一般时间…

金融行业数字化上云及信创改造过程中的一些问题及解决方案|合集①

Q&#xff1a;对金融机构来讲&#xff0c;什么是一切业务运行的前提&#xff1f; 金融机构的业务连续性对系统的稳定性要求极高。任何系统故障都可能导致严重的业务中断和经济损失。因此&#xff0c;金融机构需要IT基础架构能够提供高稳定性的服务&#xff0c;确保业务的连续运…

我的名字叫大数据

第1章 大家好,我叫大数据 1.1 我的家族传统:从我小小的祖先到壮大的我 1.1.1 最初的我:原始部落里的计数石头 大家好,我是你们人类文明的“老朋友”——大数据。你们知道吗?在我还没有变成你们手机、电脑里飞速跑动的那些数字前,我最初的模样可是一块块“计数石头”。…

Android Display Graphics #1 整体框架介绍一

软件基础 Android的framework层提供了一系列的图像渲染API&#xff0c;可绘制2D和3D。简单理解就是上层开发APP的小伙伴提供了接口&#xff0c;开发者可以直接显示对应的自己内容。但如果掌握了Display底层逻辑再写上层app&#xff0c;会有掌控力&#xff0c;出问题可以根据lo…

iOS自动连接已知Wi-Fi功能的实现

首先需要在配置文件申请的时候将hotspot勾选上&#xff0c;之后还要在x-code里添加对应的配置&#xff0c;由于我们并没有用到获取设备周边Wi-Fi的功能&#xff0c;所以就没申请相关权限 相关连接Wi-Fi代码如下&#xff1a; #import <NetworkExtension/NetworkExtension.h&…

利用ssh远程安装显卡驱动

问题描述&#xff1a; 远程另一台机器----一台有图形界面的pc机&#xff0c;以更新驱动。在系统的软件更新里&#xff0c;可选的驱动更新版本不满足要求。在终端里用ppa源更新驱动版本也没有可用的。&#xff08;看起来&#xff09;只能手动下载驱动更新。但这种方法中途需要关…

探索k8s集群的存储卷 emptyDir hostPath nfs

目录 一 含义 查看支持的存储卷类型 emptyDir存储卷 1.1 特点 1.2 用途 1.3部署 二、hostPath存储卷 一 含义 容器磁盘上的文件的生命周期是短暂的&#xff0c;这就使得在容器中运行重要应用时会出现一些问题。首先&#xff0c;当容器崩溃时&#xff0c;kubelet 会重…

全面掌握 Chrome DevTools:Web 开发者的终极攻略

全面掌握 Chrome DevTools:Web 开发者的终极攻略 Chrome DevTools 是一组内置于谷歌浏览器中的强大开发工具,旨在帮助开发者更高效地构建和调试 Web 应用。无论是前端开发、性能优化还是调试 JavaScript 代码,Chrome DevTools 都提供了丰富的功能和工具。本篇文章将详细介绍…

FreeRTOS【12】队列集使用

1.开发背景 基于以上的章节&#xff0c;了解了 FreeRTOS 多线程间的信号量、队列的使用&#xff0c;已经满足了日常使用场景。这个篇章要介绍的是队列集&#xff0c;实际上队列的升级版&#xff0c;存储信号量和队列等的触发事件。 队列集在实际的开发项目中应用相对比较少&…

chap4 simple neural network

全连接神经网络 问题描述 利用numpy和pytorch搭建全连接神经网络。使用numpy实现此练习需要自己手动求导&#xff0c;而pytorch具有自动求导机制。 我们首先先手动算一下反向传播的过程&#xff0c;使用的模型和初始化权重、偏差和训练用的输入和输出值如下&#xff1a; 我…

达梦数据库写文件的方式探索

0x01 前沿 这篇文章整体算是《达梦数据库手工注入笔记》的续集&#xff0c;达梦作为国内优秀的信创数据库&#xff0c;在关基单位中拥有越来越大的用户使用量。 通过SQL注入来写文件一直以来都是SQL注入漏洞深入利用的一种方式&#xff0c;对于不同的数据库通常写文件的方式也是…

刷代码随想录有感(86):贪心算法——跳跃游戏II(最小跳跃次数)

题干&#xff1a; 代码&#xff1a; class Solution { public:int jump(vector<int>& nums) {if(nums.size() 1)return 0;int curcover 0;int nextcover 0;int res 0;for(int i 0; i < curcover; i){nextcover max(i nums[i], nextcover);if(i curcover …