【算法刷题day37】Leetcode:738. 单调递增的数字、968. 监控二叉树

文章目录

    • Leetcode 738. 单调递增的数字
      • 解题思路
      • 代码
      • 总结
    • Leetcode 968. 监控二叉树
      • 解题思路
      • 代码
      • 总结

草稿图网站
java的Deque

Leetcode 738. 单调递增的数字

题目:738. 单调递增的数字
解析:代码随想录解析

解题思路

这贪心有点巧,自己没想出来。从后往前遍历,如果遇到了比后面小的,就让当前数减一。遍历结束后,让修改的数字的后面所有都变成9

代码

class Solution {
    public int monotoneIncreasingDigits(int n) {
         String s = String.valueOf(n);
         char[] chars = s.toCharArray();
         int start = chars.length;
         for (int i = chars.length - 2; i >= 0; i--) {
            if (chars[i] > chars[i+1]) {
                chars[i]--;
                start = i+1;
            }
         }
         for (int i = start; i < chars.length; i++) {
            chars[i] = '9';
         }
         return Integer.parseInt(String.valueOf(chars));
    }
}

总结

暂无

Leetcode 968. 监控二叉树

题目:968. 监控二叉树
解析:代码随想录解析

解题思路

自己根本想不到,这题的贪心算法需要把问题抽象化。
把空节点当作已覆盖(2)。
如果左孩子、右孩子都为已覆盖(2),则当前节点为未覆盖(0)
如果左孩子或右孩子存在未覆盖(0),则当前节点加一个监控(1)
如果左孩子或右孩子有监控(1),则当前节点为已覆盖(2)

代码

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode() {}
 *     TreeNode(int val) { this.val = val; }
 *     TreeNode(int val, TreeNode left, TreeNode right) {
 *         this.val = val;
 *         this.left = left;
 *         this.right = right;
 *     }
 * }
 */
class Solution {
    int res;
    public int minCameraCover(TreeNode root) {
        //0表示没覆盖
        //1表示安装监控
        //2表示被覆盖

        res = 0;
        if (traversal(root) == 0)
            res++;
        return res;
    }

    private int traversal(TreeNode node) {
        if (node == null)
            return 2;
        int left = traversal(node.left);
        int right = traversal(node.right);

        if (left == 2 && right == 2)
            return 0;
        if (left == 0 || right == 0){
            res++;
            return 1;
        }
        if (left == 1 || right == 1)
            return 2;
        return -1;
    }
}

总结

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

物联网鸿蒙实训解决方案

一、建设背景 在数字化浪潮汹涌的时代&#xff0c;华为鸿蒙系统以其前瞻的技术视野和创新的开发理念&#xff0c;成为了引领行业发展的风向标。 据华为开发者大会2023&#xff08;HDC. Together&#xff09;公布的数据&#xff0c;鸿蒙生态系统展现出了强劲的发展动力&#x…

钡铼IOy系列模块在无人值守智能仓库中的成功运用,提升仓储物流效率

随着科技的不断发展&#xff0c;无人值守智能仓库正成为现代物流行业的一个重要趋势。在这个快节奏的时代&#xff0c;提升仓储物流效率是企业追求的目标之一。钡铼IOy系列模块为无人值守智能仓库的成功运作提供了关键支持。本文将探讨钡铼IOy系列模块在无人值守智能仓库中的应…

子域名如何启用HTTPS,有免费泛域名SSL证书吗

如今HTTPS已经成为了网站标配&#xff0c;然而&#xff0c;对于一些刚刚起步的网站或是个人博客而言&#xff0c;如何自动跳转到HTTPS&#xff0c;以及免费SSL证书的获取&#xff0c;可能还是一个需要解决的问题。下面就来详细解答这两个问题。 我们需要明确HTTPS与SSL之间的关…

OpenAI 和 Moderna 合作,推进 mRNA 医学

&#x1f349; CSDN 叶庭云&#xff1a;https://yetingyun.blog.csdn.net/ 一、关于 Moderna Moderna 是 mRNA 医学领域的佼佼者&#xff0c;其通过不断推动 mRNA 技术的发展&#xff0c;正在重塑药物的制造方式&#xff0c;并深刻地改变我们治疗和预防疾病的方法。凭借在科学、…

包装类简单认识泛型

文章目录 包装类基本数据类型和对应的包装类装箱和拆箱自动装箱和自动拆箱 什么是泛型引出泛型语法 泛型类的使用 包装类 在Java中&#xff0c;由于基本类型不是继承自Object&#xff0c;为了在泛型代码中可以支持基本类型&#xff0c;Java给每个基本类型都对应了一个包装类型…

骑砍2霸主MOD开发(6)-使用C#-Harmony修改本体游戏逻辑

一.C#-Harmony反射及动态注入 利用C#运行时环境的反射原理,实现对已加载DLL,未加载DLL中代码替换和前置后置插桩. C#依赖库下载地址:霸王•吕布 / CSharpHarmonyLib GitCodehttps://gitcode.net/qq_35829452/csharpharmonylib 根据实际运行.Net环境选择对应版本的0Harmony.dll…

为什么没有办法画圆角?

在AutoCAD里面画圆角不是单纯的在两条线之间点一下就好了&#xff0c; 主要要输入这个半径。

“浙大学报英文版”订阅号这篇文章,丢名校脸面

今天翻到“浙大学报英文版”订阅号分享的一篇文章&#xff0c;介绍了一篇奇文&#xff0c;该论文的摘要&#xff08;Abstract&#xff09;非常任性&#xff0c;仅有一个单词— “Yes”。 原文链接&#xff1a;https://mp.weixin.qq.com/s/riw_YU3caBf7E6rdCbLE-Q 该论文是由J. …

如何为Postgres数据库设置安全的访问控制和权限管理

文章目录 解决方案1. 使用角色和权限管理2. 配置认证方法3. 使用网络访问控制4. 定期审查和更新权限 示例代码1. 创建角色并分配权限2. 配置密码认证3. 配置网络访问控制 总结 PostgreSQL是一个功能强大的开源关系型数据库系统&#xff0c;提供了丰富的权限和访问控制机制&…

bit、进制、位、时钟(窗口)、OSI七层网络模型、协议、各种码

1.bit与进制 &#xff08;个人理解&#xff0c;具体电路是非常复杂的&#xff09; 物理层数据流&#xff0c;bit表示物理层数据传输单位&#xff0c; 一个电路当中&#xff0c;通过通断来表示数字1和0 两个电路要通讯&#xff0c;至少要两根线&#xff0c;一根作为电势参照…

C语言入门课程学习笔记2

C语言入门课程学习笔记2 第8课 - 四则运算与关系运算第9课 - 逻辑运算与位运算第10课 - 深度剖析位运算第11课 - 程序中的选择结构 本文学习自狄泰软件学院 唐佐林老师的 C语言入门课程&#xff0c;图片全部来源于课程PPT&#xff0c;仅用于个人学习记录 第8课 - 四则运算与关系…

Java | Leetcode Java题解之第48题旋转图像

题目&#xff1a; 题解&#xff1a; class Solution {public void rotate(int[][] matrix) {int n matrix.length;// 水平翻转for (int i 0; i < n / 2; i) {for (int j 0; j < n; j) {int temp matrix[i][j];matrix[i][j] matrix[n - i - 1][j];matrix[n - i - 1]…

【Camera KMD ISP SubSystem笔记】CAM SYNC与DRQ②

DRQ的作用&#xff1a; DRQ负责调度管理pipeline里的node处理逻辑(通过node之间的dependency依赖机制) 利用多线程并行处理Pipeline中并行的node&#xff0c;加快处理速度 DRQ运转流程&#xff1a; DRQ先告诉node fill dependency&#xff0c; 此时seq id 为0…

15.接口自动化学习-Mock(挡板/测试桩)

场景&#xff1a; 新需求还未开发时&#xff0c;使用mock提早介入测试&#xff0c;等后边开发后&#xff0c;进行调试 三方接口返回效率低&#xff0c;使用mock技术走通流程 1.mock方式 &#xff08;1&#xff09;如果会写django或flask,可以写简单对应的代码 &#xff08;…

小红书的影视剧泥土刷剧5天涨千粉7天接商单轻轻松松月入了万没脑子运送游戏玩法,新手也可以快速上手

大家好&#xff0c;今天我将为大家介绍一个项目&#xff1a;在小红书上通过观看和分享影视剧内容&#xff0c;五天涨千粉&#xff0c;七天接商业订单&#xff0c;轻松月入过万。这个项目的玩法简单易学&#xff0c;即使是新手也能快速上手。 下载 地 址 &#xff1a; laoa1.c…

【网络安全】系统0day分析

前言 起因看见通告&#xff0c;描述是通过/lfw/core/rpc接口访问到PortalSpecServiceImpl类中的createSkinFile方法。 补丁名称&#xff1a;patch_portal65_lfw任意文件上传漏洞 补丁编码&#xff1a;NCM_NC6.5_000_109902_20240301_GP_281362040 【386G《黑客&网络安全入…

基于STM32的蓝牙小车(虚拟串口模拟)的Proteus仿真

文章目录 一、前言二、仿真图1.要求2.思路3.画图3.1 电源部分3.2 超声波测距部分3.3 电机驱动部分3.4 按键部分3.5 蓝牙部分3.6 显示屏部分3.7 整体 4.仿真5.软件 三、总结 一、前言 proteus本身并不支持蓝牙仿真&#xff0c;这里我采用虚拟串口的方式来模拟蓝牙控制。 这里给…

医院敏感文件交互 如何保障安全和效率?

医院会产生大量的敏感文件&#xff0c;这些敏感文件交互时&#xff0c;都需要使用特殊的手段&#xff0c;来保障数据的安全性。 医院的敏感数据主要包括以下几类&#xff1a; 1、患者基本信息&#xff1a;包括患者的姓名、身份证号码、户籍地或现住址、联系方式、文化程度、既…

jar包做成Windows Service 服务,不能访问网络映射磁盘

在Windows操作系统中&#xff0c;系统服务&#xff08;Services&#xff09;、计划任务&#xff08;Scheduled Tasks&#xff09;以及很多系统调用都是以SYSTEM系统账号进行操作的。用 net use 挂载&#xff0c;或者在文件管理器上直接挂载&#xff0c;挂载卷是以 Administrato…
最新文章