当前位置: 首页 > news >正文

Day32- 贪心算法part06

 一、单调递增的数字

题目一:738. 单调递增的数字 

738. 单调递增的数字

当且仅当每个相邻位数上的数字 x 和 y 满足 x <= y 时,我们称这个整数是单调递增的。

给定一个整数 n ,返回 小于或等于 n 的最大数字,且数字呈 单调递增 。

从高位到低位遍历整数 n 的每一位数字,当发现某一位数字大于其后一位数字时,将这一位数字减一,并将所有更低位的数字设置为 9,以确保结果是单调递增的。

/** @lc app=leetcode.cn id=738 lang=cpp** [738] 单调递增的数字*/// @lc code=start
class Solution {
public:int monotoneIncreasingDigits(int n) {string str = to_string(n);int marker = str.size();for (int i = str.size() - 1; i > 0; i--) {if (str[i] < str[i - 1]) {marker = i;str[i - 1] = str[i - 1] - 1;}}for (int i = marker; i < str.size(); i++) {str[i] = '9';}return stoi(str);}
};
// @lc code=end

二、监控二叉树

题目一:968. 监控二叉树

968. 监控二叉树

给定一个二叉树,我们在树的节点上安装摄像头。

节点上的每个摄影头都可以监视其父对象、自身及其直接子对象。

计算监控树的所有节点所需的最小摄像头数量。

基本思路是从叶子节点开始向上,尽量在每个节点的父节点上安装摄像头,以覆盖尽可能多的节点。这样可以保证使用最少的摄像头覆盖所有节点。

可以定义三种状态:

  1. 0:这个节点尚未被覆盖。
  2. 1:这个节点有一个摄像头。
  3. 2:这个节点已被覆盖,但没有摄像头。
/** @lc app=leetcode.cn id=968 lang=cpp** [968] 监控二叉树*/// @lc code=start
/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     TreeNode *left;*     TreeNode *right;*     TreeNode() : val(0), left(nullptr), right(nullptr) {}*     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}*     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/
class Solution {
public:int minCameraCover(TreeNode* root) {int cameras = 0;int top = dfs(root, cameras);return cameras + (top == 0 ? 1 : 0);}private:int dfs(TreeNode* node, int& cameras) {if (!node) return 2;int left = dfs(node->left, cameras);int right = dfs(node->right, cameras);if (left == 0 || right == 0) {cameras++;return 1;}return (left == 1 || right == 1) ? 2 : 0;}
};
// @lc code=end

相关文章:

Day32- 贪心算法part06

一、单调递增的数字 题目一&#xff1a;738. 单调递增的数字 738. 单调递增的数字 当且仅当每个相邻位数上的数字 x 和 y 满足 x < y 时&#xff0c;我们称这个整数是单调递增的。 给定一个整数 n &#xff0c;返回 小于或等于 n 的最大数字&#xff0c;且数字呈 单调递…...

.NetCore Flurl.Http 升级到4.0后 https 无法建立SSL连接

Flurl.Http-3.2.4 升级到 4.0.0 版本后&#xff0c;https请求异常&#xff1a;Call failed. The SSL connection could not be established. 如下图&#xff1a; Flurl.Http-3.2.4版本绕过https的代码&#xff0c;对于 Flurl.Http-4.0.0 版本来说方法不再适用&#xff0c;3.2.…...

【每周AI简讯】GPT-5将有指数级提升,GPT Store正式上线

AI7 - Chat中文版最强人工智能 OpenAI的CEO奥特曼表示GPT-5将有指数级提升 GPT奥特曼参加Y-Combinator W24启动会上表示&#xff0c;我们已经非常接近AGI。GPT-5将具有更好的推理能力、更高的准确性和视频支持。 GPT Store正式上线 OpenAI正式推出GPT store&#xff0c;目前…...

QT上位机开发(MFC vs QT)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 在qt之前,上位机开发的主要方法就是mfc。后来出现了c#语言之后,上位机的开发就有一部分人转成了c#。这些开发都是在windows平台完成的,而linux上面的界面,则都是通过各种小众库…...

线性代数:矩阵的定义

目录 一、定义 二、方阵 三、对角阵 四、单位阵 五、数量阵 六、行&#xff08;列&#xff09;矩阵 七、同型矩阵 八、矩阵相等 九、零矩阵 十、方阵的行列式 一、定义 二、方阵 三、对角阵 四、单位阵 五、数量阵 六、行&#xff08;列&#xff09;矩阵 七、同型矩…...

k8s 使用cert-manager证书管理自签

个人建议使用安装更快&#xff0c;比helm快&#xff0c;还要等待安装crd kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.13.3/cert-manager.yaml#官网 https://cert-manager.io/docs/installation/kubectl/#创建自签的ClusterIssuer c…...

SpringSecurity+JWT前后端分离架构登录认证

目录 1. 数据库设计 2. 代码设计 登录认证过滤器 认证成功处理器AuthenticationSuccessHandler 认证失败处理器AuthenticationFailureHandler AuthenticationEntryPoint配置 AccessDeniedHandler配置 UserDetailsService配置 Token校验过滤器 登录认证过滤器接口配置…...

笔试面试题——二叉树进阶(一)

&#x1f4d8;北尘_&#xff1a;个人主页 &#x1f30e;个人专栏:《Linux操作系统》《经典算法试题 》《C》 《数据结构与算法》 ☀️走在路上&#xff0c;不忘来时的初心 文章目录 一、根据二叉树创建字符串1、题目讲解2、思路讲解3、代码实现 二、二叉树的分层遍历1、题目讲…...

Java反射示例

Java反射示例 创建数据类型ReflectPoint.java package com.reflection;import java.util.Date;public class ReflectPoint {private Date birthday new Date();private int x;public int y;public String str1 "ball";public String str2 "basketball"…...

【WinForm.NET开发】实现使用后台操作的窗体

本文内容 创建使用后台操作的窗体使用设计器创建 BackgroundWorker添加异步事件处理程序添加进度报告和取消支持Checkpoint 如果某项操作需要很长的时间才能完成&#xff0c;并且不希望用户界面 (UI) 停止响应或阻塞&#xff0c;则可以使用 BackgroundWorker 类在另一个线程上…...

【操作系统和计网从入门到深入】(四)基础IO和文件系统

前言 这个专栏其实是博主在复习操作系统和计算机网络时候的笔记&#xff0c;所以如果是博主比较熟悉的知识点&#xff0c;博主可能就直接跳过了&#xff0c;但是所有重要的知识点&#xff0c;在这个专栏里面都会提到&#xff01;而且我也一定会保证这个专栏知识点的完整性&…...

四.Winform使用Webview2加载本地HTML页面并互相通信

Winform使用Webview2加载本地HTML页面并互相通信 往期目录本节目标核心代码实现HTML代码实现的窗体Demo2代码效果图 往期目录 往期相关文章目录 专栏目录 本节目标 实现刷新按钮点击 C# winform按钮可以调用C# winform代码显示到html上点击HTML按钮可以调用C# winform代码更…...

如何有效清理您的Python环境:清除Pip缓存

Python是一个广泛使用的高级编程语言&#xff0c;以其强大的库和框架而闻名。然而&#xff0c;随着时间的推移和不断安装新的包&#xff0c;Python环境可能会变得混乱不堪&#xff0c;尤其是pip缓存可能占用大量的磁盘空间。本文将向您展示如何有效地清理pip缓存&#xff0c;保…...

Jira 母公司全面停服 Server 产品,用户如何迁移至极狐GitLab

Jira 母公司即将全面停服旗下部分 Server 端产品的销售和服务支持&#xff01; Jira 母公司 Atlassian 在几年前确定了公司的战略为“全面上云”&#xff0c;为此做出了停止 Server 产品的销售和支持。整个时间线从 2021 年 2 月 2 日开始&#xff0c;直到今年 2 月 15 日&…...

Docker安装配置OnlyOffice

OnlyOffice 是一款强大的办公套件&#xff0c;你可以通过 Docker 轻松安装和部署它。本文将指导你完成安装过程。 步骤 1&#xff1a;拉取 OnlyOffice Docker 镜像 首先&#xff0c;使用以下命令从 Docker Hub 拉取 OnlyOffice Document Server 镜像&#xff1a; sudo docke…...

启动低轨道卫星LEO通讯产业与6G 3GPP NTN标准

通讯技术10年一个大跃进&#xff0c;从1990年的2G至2000年的3G网路&#xff0c;2010年的4G到近期2020年蓬勃发展的5G&#xff0c;当通讯技术迈入融合网路&#xff0c;当前的 5G 技术不仅可提供高频宽、低延迟&#xff0c;同时可针对企业与特殊需求以 5G 专网的模式提供各式服务…...

PICO Developer Center 创建和调试 ADB 命令

PICO 开发者中心概览 ADB 是一个轻量级的 Android 调试桥(Android Debug Bridge&#xff0c;简称 ADB)&#xff0c;用于与 Android 设备进行通信和调试。ADB提供了许多有用的功能&#xff0c;使开发人员能够轻松地管理和调试设备上的应用程序。 你可以使用 PDC 工具来调试系统…...

【VRTK】【PICO】如何快速创建一个用VRTK开发的PICO项目

【背景】 每次新建一个VRTK的PICO项目总是做一些重复工作,于是就想着搞成一个基本的包,把基本的设置都放进去,今后新做项目直接导这个包就行了。 完整资源包请见本篇博客的绑定资源。 【内容简介】 这个包是我为了快速开发基于VRTK的PICO应用设置的基础项目包。每次开发…...

国产操作系统:VirtualBox安装openKylin-1.0.1虚拟机并配置网络

国产操作系统&#xff1a;VirtualBox安装openKylin-1.0.1虚拟机并配置网络 openKylin 操作系统目前适配支持X86、ARM、RISC-V三个架构的个人电脑、平板电脑及教育开发板&#xff0c;可以满足绝大多数个人用户及开发者的使用需求。适用于在VirtualBox平台上安装openKylin-1.0.1…...

本地git切换地区后,无法使用ssh访问github 22端口解决方案

问题 由于放假回家&#xff0c;发现之前一直使用正常的git&#xff0c;与github无法通讯&#xff0c;pull和push都无法连接。报错如下&#xff1a; connect to host github.com port 22: Connection timed out fatal: Could not read from remote repository. 原因 可能是所…...

基于MYC-Y6ULX-V2核心板的工业运动控制系统实践

1. 项目概述&#xff1a;当工业运动控制遇上嵌入式核心板在工业自动化领域&#xff0c;运动控制系统是驱动设备精确执行动作的“大脑”和“神经中枢”。从数控机床的精密加工&#xff0c;到机器人的流畅轨迹&#xff0c;再到包装产线的快速分拣&#xff0c;其核心都依赖于一个稳…...

【Perplexity文献管理终极指南】:20年科研老炮亲授AI时代参考文献零误差管理法

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Perplexity文献管理的底层逻辑与范式革命 Perplexity 并非传统意义上的本地文献数据库工具&#xff0c;其核心突破在于将文献管理从“静态存储—手动索引”范式&#xff0c;跃迁至“动态语义理解—上下…...

Windows 10/11下,手把手教你用Python2和Git搞定GitHack(附常见错误解决)

Windows 10/11下Python2与Git环境搭建及GitHack实战指南 在网络安全和CTF竞赛领域&#xff0c;.git文件夹泄露是一个常见但危险的漏洞。GitHack作为一款专门针对此类漏洞的利用工具&#xff0c;能够帮助安全研究人员快速还原网站源代码。本文将详细介绍在Windows 10/11系统上配…...

高频电路中的隐形卫士:深度解析开关二极管BAV99的选型与应用

1. 高频电路中的隐形挑战&#xff1a;为什么需要BAV99&#xff1f; 当你设计一个高速数字接口或者射频模块时&#xff0c;最头疼的问题往往不是功能实现&#xff0c;而是那些看不见的高频干扰。我曾经在一个USB3.0接口保护电路的设计中&#xff0c;就因为选错了二极管&#xff…...

边缘计算与机器视觉在产线质检中的实战应用与优化

1. 项目概述&#xff1a;当产线质检遇上边缘计算与机器视觉在制造业的车间里&#xff0c;质检环节一直是效率与质量的“卡脖子”点。传统的人工目检&#xff0c;不仅劳动强度大、易受疲劳和情绪影响&#xff0c;而且标准难以统一&#xff0c;漏检、误检时有发生。而将高清相机拍…...

芯片HAST测试:通电工作下如何精准模拟极端环境挑战?

为了确保产品在高温、高湿等恶劣条件下仍能正常工作&#xff0c;HAST&#xff08;Highly Accelerated Stress Test&#xff09;测试成为不可或缺的一部分。本文将深入解析HAST测试&#xff0c;并探讨如何在通电工作状态下进行精准模拟&#xff0c;以应对极端环境挑战。什么是HA…...

IT6520:USB‑C 转 MIPI 芯片方案 4K@120Hz 高清显示

一、前言平板、便携屏、AR/VR 头显、车载中控、会议终端等设备&#xff0c;对USB‑C 一线通视频输出的需求越来越强。 传统方案必须用&#xff1a;PD 控制器 DP 接收芯片 MIPI 桥接芯片 外置 MCU Flash&#xff0c;多芯片拼凑导致电路复杂、成本高、兼容性差、开发周期长。…...

GitLab团队协作实战:从分支策略到CI/CD流水线优化指南

1. 项目概述&#xff1a;为什么需要一个专属的GitLab使用指导&#xff1f;在团队协作开发中&#xff0c;版本控制系统是基石&#xff0c;而GitLab作为集代码托管、CI/CD、项目管理于一体的DevOps平台&#xff0c;其重要性不言而喻。然而&#xff0c;对于许多新加入团队的开发者…...

告别BiSeNet的臃肿:手把手教你用STDC网络在MMSegmentation中实现更快的实时语义分割

从BiSeNet到STDC&#xff1a;在MMSegmentation中构建高效实时语义分割模型的实战指南 当你在深夜调试一个需要实时反馈的无人机视觉系统时&#xff0c;BiSeNet的多路径结构是否正在消耗你宝贵的计算资源&#xff1f;STDC网络的出现&#xff0c;为这类场景带来了新的可能性。本文…...

2024年数学建模竞赛进阶指南:从新手到高手的赛事路径规划与实战策略

1. 数学建模竞赛入门&#xff1a;新手如何迈出第一步 第一次接触数学建模竞赛的同学往往会感到无从下手。我清楚地记得自己大二时组队参赛的情景——三个人盯着电脑屏幕发呆一整天&#xff0c;连题目都看不懂。其实数学建模竞赛的核心逻辑很简单&#xff1a;用数学工具解决实际…...