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

news/2024/9/23 4:49:35/

文章目录

    • 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.ppmy.cn/news/1437806.html

相关文章

在 Ubuntu 22.04 上使用 Let‘s Encrypt 配置 Nginx SSL 证书

最近,我在自己的服务器上部署了一个网站,并决定使用 SSL 证书来确保网站的安全性。经过一番研究,我选择了 Lets Encrypt 作为 SSL 证书的提供商,因为它免费、自动化且广受信任。在这篇博客中,我将与大家分享我在 Ubuntu 22.04 上使用 Lets Encrypt 配置 Nginx SSL 证书的过程。…

Oracle expdp/impdp 及 exp/imp 命令详解

一、基础环境    操作系统&#xff1a;Windows 或 Linux 数据库版本&#xff1a;Oracle Database 11.2.0.1.0 及以上版本 二、命令简介    我们在使用Oracle 数据库的过程中会经常对数据进行导入导出。Oracle 数据库提供 expdp / impdp &#xff08;Data Pump&#xff0c…

Oceanbase体验之(一)运维管理工具OCP部署(社区版4.2.2)

资源规划建议 ocp主机1台 内存:64G CPU1:2C及以上 硬盘大于500G observer服务器3台 内存32G CPU&#xff1a;4C以上 硬盘大于1T 建议存储硬盘与操作系统硬盘隔开实现IO隔离 一、OBD、OCP安装包准备 [rootobserver /]# chown -R admin:admin /software/ [rootobserver /]# …

基于emp的mysql查询

SQL命令 结构化查询语句&#xff1a;Structured Query Language 结构化查询语言是高级的非过程化变成语言&#xff0c;允许用户在高层数据结构上工作。是一种特殊目的的变成语言&#xff0c;是一种数据库查询和程序设计语言&#xff0c;用于存取数据以及查询、更新和管理关系数…

231 基于matlab的北斗信号数据解析

基于matlab的北斗信号数据解析&#xff0c;多通道和单通道接收到的北斗信号数据&#xff0c;利用接收到的北斗数据&#xff08;.dat .txt文件&#xff09;&#xff0c;进行解析&#xff0c;得到初始伪距&#xff0c;平滑伪距&#xff0c;载波相位&#xff0c;并计算其标准差&am…

jenkins自动化工具简介

Jenkins 是一个开源的自动化服务器&#xff0c;它允许您自动化各种任务&#xff0c;包括构建、测试和部署软件。它是一个用Java编写的应用程序&#xff0c;可以运行在任何支持Java的平台上。Jenkins 通过其插件系统提供了大量的功能&#xff0c;使其成为一个非常灵活和强大的工…

java POI解析Excel大文件,获取表头

目录 前言依赖代码StreamingReader的openWorkbookFactory的createCSV解析首行 前言 poi解析大文件可能出现oom&#xff0c;通样大小文件&#xff0c;xlsx会oom&#xff0c;xls不会&#xff0c;所以使用流式的方式改造解析xlsx文件的代码。 我的需求是提取每一页的表头&#xf…

C++ :设计模式实现

文章目录 原则单一职责原则开闭原则依赖倒置原则接口隔离原则里氏替换原则 设计模式单例模式观察者模式策略模式代理模式 原则 单一职责原则 定义&#xff1a; 即一个类只负责一项职责 问题&#xff1a; 类 T 负责两个不同的职责&#xff1a;职责 P1&#xff0c;职责 P2。当…