代码随想录Day31 贪心06 T738 单调递增的数字 T968监控二叉树

news2024/9/21 4:23:37

LeetCode T738 单调递增的数字

题目链接:738. 单调递增的数字 - 力扣(LeetCode)

 

题目思路:

我们以332举例,题目要我们获得的是小于等于332的最大递增数字,我们知道这个数字要递增只能取299了,332 -- 329 --299 我们从后向前遍历,只要前一位大于后一位,我们就减少前一位的数值,由于需要最大,我们后一位取9即可,以此类推就得到了299.

为什么不从前向后遍历呢?

我们不妨试试看332 -> 329 因为前两个是符合的33不变后面的32变成了29,明显不是我们需要的答案,这个只能满足最后两个数一定满足题意,而可能让前面的不满足题意

最后我们可以用一个start变量来标记需要标记9的位置,方便一次性全部标记

 

题目代码:

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

        }
        for(int i = start;i<s.length();i++)
        {
            chars[i] = '9';
        }
        return Integer.parseInt(String.valueOf(chars));

    }
}

LeetCode T968 监控二叉树

题目链接:968. 监控二叉树 - 力扣(LeetCode)

题目思路:

这题有点难度,我们就沿着卡哥的思路来理解,我们首先想,如何放置摄像头才是最少的呢,题目说了摄像头可以覆盖三层,要想他不浪费,那么根节点和叶子结点就是不能选择的,我们看示例也是这样写的,我们知道根节点处让摄像头物尽其用远不如叶子结点来节省的多,所以我们选择后序遍历,将上一个节点的覆盖情况通过返回值的形式返回上去

这题我们定义三种节点状态,0表示无覆盖,1表示有摄像头,2表示有覆盖

接下来我们讨论节点情况

注:空节点默认为已经覆盖的情况

假设空节点是没覆盖的情况,我们在叶子结点就得放摄像机来保证覆盖情况

1.左右孩子都有覆盖,那么为了更好的效果,此时父节点一定是没有覆盖的,父节点一定是要由他的父节点来覆盖的.

2.左右孩子有一个是没覆盖的,此时父节点一定要补一个摄像机,此时也要进行结果的累加

3.左右孩子有一个有摄像机,此时父节点一定是已经覆盖的

4.我们说头结点的覆盖要由他的父节点来完成,这里万一头结点就是根节点怎么办?这里我们做其他处理,也就是再加一个摄像头

题目代码:

class Solution {
    int result;
    public int minCameraCover(TreeNode root) {
        result = 0;
        if(travsal(root) == 0)
        {
            result++;
        }
        return result;

    }
    public int travsal(TreeNode root)
    {
        if(root == null)
        {
            return 2;
        }
        int left = travsal(root.left);
        int right = travsal(root.right);
        if(left == 2 && right == 2)
        {
            return 0;
        }
        
        if(left == 0 || right == 0)
        {
            result++;
            return 1;
        }
        if(left == 1 || right == 1)
        {
            return 2;
        }
        return -1;
    }
}

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

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

相关文章

嵌入式-数码管控制

一、数码管显示数字&#xff0c;P2_4, P2_3,P2_2,这三个组合起来代表1-8的二进制表示代表1-8个led。P0代表要显示的数字的16进制表示。 这个图就是表示led灯, 比如要显示数据6&#xff0c;那就是0111 1101&#xff0c;那么16进制就是0x7D,所以p00x7D 二、数码管&#xff0c;动…

C/C++数据结构之深入了解树与二叉树:概念、存储结构和遍历

树是一种常见的数据结构&#xff0c;它在计算机科学和数学中都有广泛的应用。树结构的最简单形式是二叉树&#xff0c;本文将深入探讨树和二叉树的概念、存储结构以及二叉树的遍历&#xff0c;并提供一些实际的代码示例来帮助理解这些概念。 树与二叉树的概念 树 (Tree) 树是…

[双指针] Leetcode 283.移动零和1089.复习零

[双指针] Leetcode 283.移动零和1089.复习零 移动零 283. 移动零 1.题意分析 (1) 给你一个数组&#xff0c;将数组中的所有0移动到数组的末尾 (2) 保证非0元素在数组中相对位置不变 (3) 在原数组中操作 2.解题思路 由于题目要求我们移动数组内容&#xff08;也就是交换两…

【JAVA学习笔记】49 - String类,StringBuffer类,StringBuilder类(重要)

String类 一、String入门 1) String对象用于保存字符串&#xff0c;也就是一组字符序列 2)字符串常量对象是用双引号括起的字符序列。例如: "你好"、 "12.97"、 "boy"等 3)字符串的字符使用Unicode字符编码&#xff0c;一个字符&#xff08;不…

城市群(Megalopolis)/城际(inter-city)OD相关研究即Open Access数据集调研

文章目录 1 城市群/城际OD定义2 理论模型与分析方法2.1 重力模型 Gravity Model2.2 干预机会模型 Intervening Opportunities Model2.3 辐射模型 Radiation Model 3 Issues related to OD flows3.1 OD Prediction3.2 OD Forecasting3.3 OD Construction3.4 OD Estimation 4 OD …

Kubernetes - Ingress HTTP 负载搭建部署解决方案(新版本v1.21+)

在看这一篇之前&#xff0c;如果不了解 Ingress 在 K8s 当中的职责&#xff0c;建议看之前的一篇针对旧版本 Ingress 的部署搭建&#xff0c;在开头会提到它的一些简介Kubernetes - Ingress HTTP 负载搭建部署解决方案_放羊的牧码的博客-CSDN博客 开始表演 1、kubeasz 一键安装…

星闪技术 NearLink 一种专门用于短距离数据传输的新型无线通信技术

本心、输入输出、结果 文章目录 星闪技术 NearLink 一种专门用于短距离数据传输的新型无线通信技术前言星闪技术 NearLink 的诞生背景星闪技术 NearLink 简介星闪技术 NearLink 技术是一种蓝牙技术吗星闪技术 NearLink 优势星闪技术 NearLink 应用前景弘扬爱国精神星闪技术 Nea…

AlmaLinux正开发成为不包含RHEL代码但兼容RHEL的发行版本

导读近日消息&#xff0c;AlmaLinux 正在创建一个不包含 Red Hat Enterprise Linux&#xff08;RHEL&#xff09;代码&#xff0c;但兼容 RHEL 的发行版本。 AlmaLinux OS 基金会主席 benny Vasquez 出席 All Things Open 开源社区大会&#xff0c;表示 AlmaLinux 发行版的目标…

jenkins自动化操作步骤(gitblit)

1、登陆地址&#xff1a; http://xxxxxxxxx.org:xxxx/ admin/xxxx 2、创建任务 选择构建一个maven项目 3、配置 最多只保留一天一个任务 选择git仓库和账号密码 选择代码对应分支 build项&#xff1a; 1&#xff09;使用父项目的pom文件&#xff1a;k56-boot/pom.xml 2&…

什么是鱼叉式网络钓鱼?

鱼叉式网络钓鱼 1. 鱼叉式网络钓鱼的概念2. 鱼叉式网络钓鱼的原理3. 鱼叉式网络钓鱼与网络钓鱼的区别4. 如何防范鱼叉式网络钓鱼 1. 鱼叉式网络钓鱼的概念 鱼叉式网络钓鱼&#xff08;Spear Phishing &#xff09;&#xff0c;又称鱼叉式网络攻击&#xff0c;是一种针对特定目…

SpringCore完整学习教程4,入门级别

本章从第4章开始 4. Logging Spring Boot使用Commons Logging进行所有内部日志记录&#xff0c;但保留底层日志实现开放。为Java Util Logging、Log4J2和Logback提供了默认配置。在每种情况下&#xff0c;记录器都预先配置为使用控制台输出和可选的文件输出。 默认情况下&…

云服务器搭建Spark集群

文章目录 1. Local 模式1.1 安装local模式1.2 命令行工具1.3 提交本地应用 2. Standlone模式2.1 集群配置2.2 修改配置文件2.3 启动集群与停止集群2.4 提交应用到集群环境2.5 提交应用的参数详细说明2.6 配置历史服务2.7 配置高可用&#xff08;HA&#xff09; 3. Yarn模式&…

“爱知道”,你知道吗?

拥抱时代浪潮&#xff0c;加速科技变革。数字经济时代&#xff0c;杭州重点贯彻市委市政府数字经济创新提质“一号发展工程”&#xff0c;加快发展数字经济&#xff0c;推动全市数字经济往高攀升、向新进军、以融提效。基于政府对数字经济新活力的赋能、优化数字社会环节、构建…

『力扣刷题本』:删除排序链表中的重复元素

一、题目 给定一个已排序的链表的头 head &#xff0c; 删除所有重复的元素&#xff0c;使每个元素只出现一次 。返回 已排序的链表 。 示例 1&#xff1a; 输入&#xff1a;head [1,1,2] 输出&#xff1a;[1,2]示例 2&#xff1a; 输入&#xff1a;head [1,1,2,3,3] 输出&am…

守牢底线——建行驻江门市分行纪检组举办2023年清廉合规大讲堂

为推动廉洁教育打通“最后一公里”&#xff0c;近日&#xff0c;建行驻江门市分行纪检组举办江门市分行2023年清廉合规大讲堂。 本次大讲堂邀请了检察院资深检察官专题讲授《金融从业人员易涉犯罪问题剖析及预防》&#xff0c;检察官结合一线办案经历&#xff0c;从防范化解金…

Spring FactoryBean 源码讲解

Spring FactoryBean 源码讲解 什么是Spring FactoryBean Spring FactoryBean是一个特殊的Bean&#xff0c;它实现了FactoryBean接口并重写了其getObject()方法&#xff0c;用于生产其他Bean的实例。在Spring容器启动时&#xff0c;会自动调用FactoryBean的getObject()方法来获…

设计模式:访问者模式(C#、JAVA、JavaScript、C++、Python、Go、PHP)

上一篇《状态模式》 下一篇《原型模式》 简介&#xff1a; 访问者模式&#xff0c;它是一种将数据操作与数据结构分离的设计模式&#xff0c;它属于行为型模式。访问者模式的基本思想是&#xff0c;针对…

Redis中的数据类型以及适用场景

1.Redis中的数据类型 Redis中的数据类型包括&#xff1a;String(字符串&#xff09;、Hash(字典)、List(列表)、Set(集合)、Sorted Set【Zset】(有序集合&#xff09;。 Redis 所有的数据结构都是一个key对应一个value&#xff0c;不同类型的数据结构之间的差异就在于value的…

电子器件 电阻参数与选型

一、参数 电阻的主要参数有&#xff1a;精度、温度系数和功率三个 1.1 精度 一般有0.1%、1%&#xff0c;5%&#xff0c;10%&#xff0c;15%、25%等&#xff0c;一般精度越高价格也越高。有些场合需要使用高精度的电阻。 其中精度所代表的字母如下&#xff1a; L0.01%P0.02…

建行广东江门分行:科技赋能,数据助力纠“四风”

为进一步深化落实中央八项规定精神&#xff0c;持续加大“四风”问题查处力度&#xff0c;建行驻江门市分行纪检组根据《广东省分行贯彻落实中央八项规定精神持之以恒纠治“四风”实施方案》&#xff08;建粤党发〔2023〕1号&#xff09;安排&#xff0c;对驻在市分行开展“四风…