当前位置: 首页 > 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

http://www.lryc.cn/news/285340.html

相关文章:

  • .NetCore Flurl.Http 升级到4.0后 https 无法建立SSL连接
  • 【每周AI简讯】GPT-5将有指数级提升,GPT Store正式上线
  • QT上位机开发(MFC vs QT)
  • 线性代数:矩阵的定义
  • k8s 使用cert-manager证书管理自签
  • SpringSecurity+JWT前后端分离架构登录认证
  • 笔试面试题——二叉树进阶(一)
  • Java反射示例
  • 【WinForm.NET开发】实现使用后台操作的窗体
  • 【操作系统和计网从入门到深入】(四)基础IO和文件系统
  • 四.Winform使用Webview2加载本地HTML页面并互相通信
  • 如何有效清理您的Python环境:清除Pip缓存
  • Jira 母公司全面停服 Server 产品,用户如何迁移至极狐GitLab
  • Docker安装配置OnlyOffice
  • 启动低轨道卫星LEO通讯产业与6G 3GPP NTN标准
  • PICO Developer Center 创建和调试 ADB 命令
  • 【VRTK】【PICO】如何快速创建一个用VRTK开发的PICO项目
  • 国产操作系统:VirtualBox安装openKylin-1.0.1虚拟机并配置网络
  • 本地git切换地区后,无法使用ssh访问github 22端口解决方案
  • Chat2DB:AI赋能的多数据库客户端工具,开源领航未来数据库管理
  • SQL Server修改数据字段名的方法
  • Flutter编译报错Connection timed out: connect
  • PG DBA培训26:PostgreSQL运维诊断与监控分析
  • 运维之道—生产环境安装Redis
  • 人工智能数学验证工具LEAN4【入门介绍3】乘法世界-证明乘法的所有运算律
  • Armv8-M的TrustZone技术简介
  • ctfshow-反序列化(web267-web270)
  • 决策树的分类
  • LateX--插入伪代码类型详解
  • 《Python数据分析技术栈》第06章使用 Pandas 准备数据 04 DataFrames