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

*算法训练(leetcode)第二十七天 | 56. 合并区间、738. 单调递增的数字、968. 监控二叉树

刷题记录

  • 56. 合并区间
  • *738. 单调递增的数字
  • *968. 监控二叉树

56. 合并区间

leetcode题目地址

排序后遇到有重合的区间选择最大的区间保存即可,结果集中保存的是离当前区间最近的区间,因此使用当前区间与结果集中的最后一个集合比较查看是否有重合,若有重合则将右区间扩大为两个区间中最大的右区间,若没有重合则将当前集合放入结果集中。

时间复杂度: O ( n ) O(n) O(n)
空间复杂度: O ( 1 ) O(1) O(1)

// c++
class Solution {
public:static bool cmp(const vector<int> & a, const vector<int> & b){if(a[0]==b[0]) return a[1] > b[1];return a[0] < b[0];}vector<vector<int>> merge(vector<vector<int>>& intervals) {vector<vector<int>> result;sort(intervals.begin(), intervals.end(), cmp);for(int i=0; i<intervals.size(); i++){if(result.size()>0){int last = result.size()-1;if(intervals[i][0]<=result[last][1])result[last][1] = max(result[last][1], intervals[i][1]);else{result.emplace_back(intervals[i]);}}else{result.emplace_back(intervals[i]);}}return result;}
};

*738. 单调递增的数字

leetcode题目地址

一开始想着暴力求解,但超时了,然后就没思路了。

思路来源

时间复杂度: O ( n ) O(n) O(n)
空间复杂度: O ( 1 ) O(1) O(1)

// c++
class Solution {
public:int monotoneIncreasingDigits(int n) {string s = to_string(n);int flag = s.size();for(int i=s.size()-1; i>0; i--){if(s[i-1] > s[i]) {flag = i;s[i-1]--;}}for(int i=flag; i<s.size(); i++)s[i] = '9';return stoi(s);}
};

*968. 监控二叉树

leetcode题目地址

借助后序遍历,每个结点三种状态:无覆盖、有监控、被覆盖,分别用0、1、2标识。

  • 若孩子节点都是被覆盖,则当前节点没有被覆盖,返回0;
  • 若孩子节点有一个未被覆盖,则当前节点需要加装监控,计数器+1,返回1;
  • 若孩子节点有一个装了监控,则当前节点是被覆盖的状态,返回2;

空节点需要返回被覆盖状态,即2。
因为空节点的父结点可能是叶结点,若返回无覆盖状态,则会把监控装在叶结点,而正确的位置应该装在叶结点的父节点;若返回有监控,则会导致单分支节点未被覆盖。因此只能返回2.

时间复杂度: O ( n ) O(n) O(n)
空间复杂度: O ( n ) O(n) O(n)

// c++
/*** 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) {}* };*//*
三种状态:
无覆盖:0
当前节点有摄像头:1
当前节点有被覆盖:2
*/
class Solution {
public:int Traverse(TreeNode* root, int &result){if(!root) return 2;int left = Traverse(root->left, result);int right = Traverse(root->right, result);// 左右节点有一个未被覆盖 则当前节点需要加摄像头if(!left || !right){result++;return 1;}// 左右节点有监控 则当前节点被覆盖if(left == 1 || right == 1){return 2;}// 子节点都是覆盖 则当前节点未被覆盖if(left==2 && right==2) {return 0;}return -1;}int minCameraCover(TreeNode* root) {int result = 0;int res = Traverse(root, result);// 根节点未被覆盖if(!res) result++;return result;}
};

相关文章:

*算法训练(leetcode)第二十七天 | 56. 合并区间、738. 单调递增的数字、968. 监控二叉树

刷题记录 56. 合并区间*738. 单调递增的数字*968. 监控二叉树 56. 合并区间 leetcode题目地址 排序后遇到有重合的区间选择最大的区间保存即可&#xff0c;结果集中保存的是离当前区间最近的区间&#xff0c;因此使用当前区间与结果集中的最后一个集合比较查看是否有重合&…...

OpenJudge 奇数求和

目录 描述思路样例输入样例输出CodeCC 总时间限制: 1000ms 内存限制: 65536kB 描述 计算非负整数 m 到 n&#xff08;包括m 和 n &#xff09;之间的所有奇数的和&#xff0c;其中&#xff0c;m 不大于 n&#xff0c;且n 不大于300。例如 m3, n12, 其和则为&#xff1a;357911…...

【排序 - 快速排序】

快速排序&#xff08;Quick Sort&#xff09;是一种高效的排序算法&#xff0c;它基于分治&#xff08;Divide and Conquer&#xff09;的策略。这种排序算法的核心思想是选择一个基准元素&#xff0c;将数组分割成两部分&#xff0c;使得左边的元素都小于等于基准元素&#xf…...

pytest使用报错(以及解决pytest所谓的“抑制print输出”)

1. 测试类的类名问题 #codingutf-8import pytestclass TestClass1:def setup(self) -> None:print(setup)def test_01(self) -> None:print(test_01111111111111111111111)def test_02(self) -> None:print(test_02)以上述代码为例&#xff0c;如果类名是Test开头&am…...

开源项目编译harbor arm架构的包 —— 筑梦之路

GitHub - amy5200/harbor-arm64 先做个记录&#xff0c;空了再验证...

[笔记] SKF Enveloping FAQ 用户指南

文档编号&#xff1a;Application Note CM3013 1.名词解释&#xff1a; 1.1cavitationWhat Is Cavitation? | Pumps & Systems 叶片在液体中扰动形成的超声波 1.2 stiff machinehttps://suspensionlist.com/the-pros-and-cons-of-stiff-vs-soft-suspension-systems/ …...

宪法学学习笔记(个人向) Part.3

宪法学学习笔记(个人向) Part 3 3. 国家基本制度 3.1 国家性质 3.1.1 国家性质概述 国家性质的概念 国家性质也称国体&#xff0c;或国家的阶级本质&#xff0c;是指各个阶级在国家中的地位&#xff08;哪个阶层是统治阶层&#xff0c;哪个阶层是被统治阶层&#xff0c;哪个…...

联想拯救者Y7000 IRX9 笔记本接口功能介绍

适用机型&#xff1a;Legion Y7000 IRX9; 83JJ&#xff1b; USB&#xff08;3.2 Gen 1&#xff09;Type-接口摄像头开关组合音频插孔 多用于USB Type-C接口 以太网接口 多用途USB Type-C接口&#xff08;支持USB Power Delivery&#xff09;HDMI接口USB&#xff08;3.2 Gen 1&…...

【ESP32】打造全网最强esp-idf基础教程——16.SmartConfig一键配网

SmartConfig一键配网 一、SmartConfig知识扫盲 在讲STA课程的时候&#xff0c;我们用的是代码里面固定的SSID和密码去连接热点&#xff0c;但实际应用中不可能这么弄&#xff0c;我们得有办法把家里的WiFi SSID和密码输入到设备里面去&#xff0c;对于带屏带输入设备还…...

MD5加密和注册页面的编写

MD5加密 1.导入包 npm install --save ts-md5 2.使用方式 import { Md5 } from ts-md5; //md5加密后的密码 const md5PwdMd5.hashStr("123456").toUpperCase(); 遇见的问题及用到的技术 注册页面 register.vue代码 <template><div class"wappe…...

【Android组件】封装加载弹框

&#x1f4d6;封装加载弹框 ✅1. 构造LoadingDialog✅2. 调用LoadingDialog 效果&#xff1a; ✅1. 构造LoadingDialog 构造LoadingDialog类涉及到设计模式中的建造者模式&#xff0c;进行链式调用&#xff0c;注重的是构建的过程&#xff0c;设置需要的属性。 步骤一&#x…...

Spring源码二十:Bean实例化流程三

上一篇Spring源码十九&#xff1a;Bean实例化流程二中&#xff0c;我们主要讨论了单例Bean创建对象的主要方法getSingleton了解到了他的核心流程无非是&#xff1a;通过一个简单工厂的getObject方法来实例化bean&#xff0c;当然spring在实例化前后提供了扩展如&#xff1a;bef…...

前端导出文件时,后端代码出错如何将错误信息返回给前端展示

功能说明&#xff1a;前端导出excel时&#xff0c;后端出现异常&#xff0c;比如sql异常&#xff0c;或者创建excel时出现的异常&#xff0c;希望将这些异常信息返回给前端查看。 框架&#xff1a;vue3 axios Springboot 实现难度分析&#xff1a;前端导出excel&#xff0c…...

解决Spring Boot应用中的内存优化问题

解决Spring Boot应用中的内存优化问题 大家好&#xff0c;我是微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 1. Spring Boot应用的内存管理 在开发和部署Spring Boot应用时&#xff0c;有效地管理内存是确保应用性能和稳…...

shark云原生-日志体系-filebeat高级配置(适用于生产)-更新中

文章目录 1. filebeat.inputs 静态日志收集器2. filebeat.autodiscover 自动发现2.1. autodiscover 和 inputs2.2. 如何配置生效2.3. Providers 提供者2.4. Providers kubernetes2.5. 配置 templates2.5.1. kubernetes 自动发现事件中的变量字段2.5.2 配置 templates 2.6. 基于…...

响应式设计的双璧:WebKit 支持 CSS Flexbox 和 Grid 布局深度解析

响应式设计的双璧&#xff1a;WebKit 支持 CSS Flexbox 和 Grid 布局深度解析 在现代网页设计中&#xff0c;响应式布局是实现跨设备兼容性的关键。CSS Flexbox 和 Grid 作为 CSS 布局的两大支柱&#xff0c;提供了强大的工具来构建灵活和复杂的用户界面。WebKit&#xff0c;作…...

Linux软件包管理

一、软件包管理 1.什么是软件包 一般在window系统的.exe是软件按转包 2.linux系统下的软件包安装方式 PRM 软件包安装 软件名称.rpmYUM 包管理工具 yum intall 软件名称 -y源码安装 下载源代码---编译---安装 很麻烦&#xff0c;稳定 3.二进制软件包 二进制 4.获取*.rpm…...

如何分辨AI生成的内容?AI生成内容检测工具对比实验

检测人工智能生成的文本对各个领域的组织都提出了挑战&#xff0c;包括学术界和新闻界等。生成式AI与大语言模型根据短描述来进行内容生成的能力&#xff0c;产生了一个问题&#xff1a;这篇文章/内容/作业/图像到底是由人类创作的&#xff0c;还是AI创作的&#xff1f;虽然 LL…...

Clion中怎么切换不同的程序运行

如下图&#xff0c;比如这个文件夹下面有那么多的项目&#xff1a; 那么我想切换不同的项目运行怎么办呢&#xff1f;如果想通过下图的Edit Configurations来设置是不行的&#xff1a; 解决办法&#xff1a; 如下图&#xff0c;选中项目的CMakeLists.txt&#xff0c;右键再点击…...

【C++初阶】C++入门(下)

【C初阶】C入门&#xff08;下&#xff09; &#x1f955;个人主页&#xff1a;开敲&#x1f349; &#x1f955;所属专栏&#xff1a;C&#x1f96d; &#x1f33c;文章目录&#x1f33c; 6. 引用 6.1 引用的概念 6.2 引用特性 6.3 常引用 6.4 使用场景 6.5 传值、传引用效率…...

【信息科学与工程学】【人工智能】【数字孪生】【游戏科学】主要数学模型-第八篇 计算血液学

计算血液学:理论与数学框架全体系 计算血液学是生物物理学、流体力学和反应动力学的交叉领域,研究血液作为多相智能流体的物理与数学原理。以下是从宏观血流到分子机制的全尺度数学模型体系。 一、血液流变学基础 模型类别 核心方程/定义 参数符号 物理意义 典型值范围 1. …...

OpenMCP:一站式MCP开发调试套件,从调试到部署的完整解决方案

1. 项目概述&#xff1a;OpenMCP&#xff0c;一个为MCP开发者打造的“瑞士军刀”如果你正在或打算开发基于Model Context Protocol&#xff08;MCP&#xff09;的AI应用&#xff0c;那你一定遇到过这样的困境&#xff1a;好不容易写好了MCP Server&#xff0c;却不知道如何高效…...

口令猜测—PCFG

PCFG 口令猜测方法介绍 1. PCFG 是什么 PCFG 全称是 Probabilistic Context-Free Grammar&#xff0c;即概率上下文无关文法。 在口令猜测研究中&#xff0c;PCFG 的核心思想是&#xff1a;人类设置口令并不是完全随机的&#xff0c;而是具有明显的结构和习惯。例如&#xff0c…...

终极指南:如何免费快速完成OFD转PDF的完整教程

终极指南&#xff1a;如何免费快速完成OFD转PDF的完整教程 【免费下载链接】Ofd2Pdf Convert OFD files to PDF files. 项目地址: https://gitcode.com/gh_mirrors/ofd/Ofd2Pdf 如果你经常处理电子发票、政府公文或电子证照&#xff0c;那么OFD转PDF的需求一定不陌生。O…...

八大网盘直链下载助手:打破下载限制的完整解决方案

八大网盘直链下载助手&#xff1a;打破下载限制的完整解决方案 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 &#xff0c;支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼云盘…...

LinkSwift:九大网盘直链下载终极解决方案,三步告别限速困扰

LinkSwift&#xff1a;九大网盘直链下载终极解决方案&#xff0c;三步告别限速困扰 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 &#xff0c;支持 百度网盘 / 阿里云盘 / 中国…...

AI原生开发流程重构全景图(2026奇点大会权威发布版)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;AI原生开发流程重构&#xff1a;2026奇点智能技术大会方法论发布 在2026奇点智能技术大会上&#xff0c;全球首个面向生产级AI应用的端到端开发范式正式发布——“AI原生开发流程”&#xff08;AINativ…...

AI原生知识图谱构建终极路径图(含2026奇点大会内部评估矩阵V3.2与准入清单)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;AI原生知识图谱构建&#xff1a;2026奇点智能技术大会KG实践指南 AI原生知识图谱&#xff08;AI-Native KG&#xff09;不再将图谱视为静态结构化知识库&#xff0c;而是作为大模型推理的实时协同体——…...

5分钟搭建个人抖音内容库:开源下载器让你的收藏不再受限

5分钟搭建个人抖音内容库&#xff1a;开源下载器让你的收藏不再受限 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback sup…...

抖音内容高效获取技术方案:基于douyin-downloader的分布式下载架构实践

抖音内容高效获取技术方案&#xff1a;基于douyin-downloader的分布式下载架构实践 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browse…...