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

贪心算法|435.无重叠区间

 力扣题目链接

class Solution {
public:// 按照区间右边界排序static bool cmp (const vector<int>& a, const vector<int>& b) {return a[1] < b[1];}int eraseOverlapIntervals(vector<vector<int>>& intervals) {if (intervals.size() == 0) return 0;sort(intervals.begin(), intervals.end(), cmp);int count = 1; // 记录非交叉区间的个数int end = intervals[0][1]; // 记录区间分割点for (int i = 1; i < intervals.size(); i++) {if (end <= intervals[i][0]) {end = intervals[i][1];count++;}}return intervals.size() - count;}
};

写算法题是需要集中注意力,静下心用心去写的。

如果你浮躁的话会发现理解不了,你如果静下心一步一步去画理清自己思路其实还是很容易的。

 代码随想录 (programmercarl.com)

思路

相信很多同学看到这道题目都冥冥之中感觉要排序,但是究竟是按照右边界排序,还是按照左边界排序呢?

其实都可以。主要就是为了让区间尽可能的重叠。

我来按照右边界排序,从左向右记录非交叉区间的个数。最后用区间总数减去非交叉区间的个数就是需要移除的区间个数了

此时问题就是要求非交叉区间的最大个数。

这里记录非交叉区间的个数还是有技巧的,如图:

区间,1,2,3,4,5,6都按照右边界排好序。

当确定区间 1 和 区间2 重叠后,如何确定是否与 区间3 也重贴呢?

就是取 区间1 和 区间2 右边界的最小值,因为这个最小值之前的部分一定是 区间1 和区间2 的重合部分,如果这个最小值也触达到区间3,那么说明 区间 1,2,3都是重合的。

接下来就是找大于区间1结束位置的区间,是从区间4开始。那有同学问了为什么不从区间5开始?别忘了已经是按照右边界排序的了

区间4结束之后,再找到区间6,所以一共记录非交叉区间的个数是三个。

总共区间个数为6,减去非交叉区间的个数3。移除区间的最小数量就是3。

自己的理解:

刚开始一直静不下心去写,然后有些地方看不懂。

后来自己去看视频静下心去理解,梳理自己的思路。

卡哥视频讲的是按左区间排序,但是这个代码答案是右区间排序哦!

而且计算的count还是不重叠部分的。

1.注意i是从1开始,这样才能和前面的有所比较

2.判断区间是否重叠

上一个区间的右区间 <= 当前区间的左区间  (不重叠)

else  重叠

因为计算的是不重叠的count

所以不重叠count++

更改end

理解后独自敲的代码,语法不熟练啊!

还有可笑的错误!

相关文章:

贪心算法|435.无重叠区间

力扣题目链接 class Solution { public:// 按照区间右边界排序static bool cmp (const vector<int>& a, const vector<int>& b) {return a[1] < b[1];}int eraseOverlapIntervals(vector<vector<int>>& intervals) {if (intervals.siz…...

C++的并发世界(七)——互斥锁

0.死锁的由来 假设有两个线程T1和T2&#xff0c;它们需要对两个互斥量mtx1和mtx2进行访问。而且需要按照以下顺序获取互斥量的所有权&#xff1a; -T1先获取mte1的所有权,再获取mt2的所有权。 -T2先获取 mtx2的所有权。再铁取 mtx1的所有权。 如果两个线程同时执行&#xff0c…...

NI-LabView的DAQ缺少或丢失的解决办法(亲测有效)

DAQmx在Labview中不显示或缺失 问题&#xff1a;在NI Packasge Manager安装完DAQ后在labview中不显示控件解决办法 问题&#xff1a;在NI Packasge Manager安装完DAQ后在labview中不显示控件 在打开测量I/O时&#xff0c;见不到 DAQmx&#xff0c;或者在Express中见不到DAQ助手…...

cesium 调整3dtiles的位置 世界坐标下 相对坐标下 平移矩阵

cesium调整3dtiles的位置用到的是平移矩阵&#xff0c;原理是在世界坐标系中用偏移点减去原始点得到一个平移向量&#xff0c;再根据这个向量得到平移矩阵。 原始点&#xff1a;一般是模型的中心点位置&#xff0c;可通过模型的包围盒得到偏移点&#xff1a;可分为两种情况&…...

flutter跑通腾讯云直播Demo

运行示例 前提条件 要求java jdk 11版本 并且配置到了环境变量 重要 要求flutter 版本 2.8.0 并且配置到了环境变量 重要 要求dart-sdk版本2.15 并且配置到了环境变量 重要 您已 注册腾讯云 账号&#xff0c;并完成 实名认证。 申请 SDKAPPID 和 SECRETKEY 登录实时音视频控…...

飞机降落蓝桥杯[2023蓝桥省赛B组]

2023蓝桥省赛B组 B题 飞机降落 题解 标准深搜板子题&#xff0c;难度不大 #include<bits/stdc.h> using namespace std; #define MAX 10 struct node{int t,d,l;//t:飞机到达时间 d:飞机最大盘旋时间 l:飞机降落所需时间bool v;//标记此架飞机是否被搜索过 用于剪枝 };…...

如何动态渲染HTML内容?用v-html!

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…...

EFcore 6 连接oracle19 WinForm vs2022

用EFcore访问Oracle&#xff0c;终于不需要Oracle的什么安装包了&#xff0c;直接在VS2022中就可以轻松搞定。在csdn上看到一哥们的帖子&#xff0c;测试了一下&#xff0c;发现很方便。使用的场景是&#xff1a;VS2022中EFcore6。经过测试&#xff0c;同 Navicat Premium 16比…...

(delphi11最新学习资料) Object Pascal 学习笔记---第9章第2节(finally代码块)

9.2 finally 代码块 ​ 还有第四个用于异常处理的关键字&#xff0c;我已经提到过&#xff0c;但到目前为止还没有使用过&#xff0c;那就是 finally。finally块用于执行一些应始终执行的操作&#xff08;通常是清理操作&#xff09;。事实上&#xff0c;无论是否发生异常&…...

220 基于matlab的考虑直齿轮热弹耦合的动力学分析

基于matlab的考虑直齿轮热弹耦合的动力学分析&#xff0c;输入主动轮、从动轮各类参数&#xff0c;考虑润滑油温度、润滑油粘度系数等参数&#xff0c;输出接触压力、接触点速度、摩擦系数、对流传热系数等结果。程序已调通&#xff0c;可直接运行。 220直齿轮热弹耦合 接触压力…...

Intrigue Core:一款功能强大的攻击面枚举引擎

关于Intrigue Core Intrigue Core是一款功能强大的开源攻击面枚举引擎&#xff0c;该工具可以帮助广大研究人员更好地管理应用程序的攻击面。 Intrigue Core集成了各种各样的安全数据源&#xff0c;可以将这些数据提取到标准化的对象模型中&#xff0c;并通过图形数据库跟踪关…...

【精品PPT】智慧路灯大数据平台整体建设实施方案(免费下载)

1、知识星球下载&#xff1a; 如需下载完整PPTX可编辑源文件&#xff0c;请前往星球获取&#xff1a;https://t.zsxq.com/19QeHVt8y 2、免费领取步骤&#xff1a; 【1】关注公众号 方案驿站 【2】私信发送 【智慧路灯大数据平台】 【3】获取本方案PDF下载链接&#xff0c;直…...

idea 中运行spring boot 项目报 Command line is too long的解决办法。

Command line is too long 在这里选择edit configures 选择shrten command line , 选择 jar manifest 运行即可。...

Windows终端添加git bash

环境&#xff1a;windows11 终端&#xff1a;windows terminal git bash默认的界面不太好看&#xff0c;添加到终端会比较好用 步骤 打开 windows terminal&#xff0c;在向下箭头 点击 设置左侧栏 点击 “添加新配置文件”&#xff0c;如下图配置&#xff0c;主要修改项&…...

【方法】PDF密码如何取消?

对于重要的PDF文件&#xff0c;很多人会设置密码保护&#xff0c;那后续不需要保护了&#xff0c;如何取消密码呢&#xff1f; 今天我们来看看&#xff0c;PDF的两种密码&#xff0c;即“限制密码”和“打开密码”&#xff0c;是如何取消的&#xff0c;以及忘记密码的情况要怎…...

怎么开发一个预约小程序_一键预约新体验

预约小程序&#xff0c;让生活更便捷——轻松掌握未来&#xff0c;一键预约新体验 在快节奏的现代生活中&#xff0c;我们总是在不断地奔波&#xff0c;为了工作、为了生活&#xff0c;不停地忙碌着。然而&#xff0c;在这繁忙的生活中&#xff0c;我们是否曾想过如何更加高效…...

JavaScript_注释数据类型

JavaScript_语法_注释&数据类型&#xff1a; 1.2注释&#xff1a; 1.单行注释&#xff1a;//注释内容 2.多行注释&#xff1a;/*注释内容*/ 1.3数据类型&#xff1a; 1.原始数据类型(基本数据类型)&#xff1a;&#xff08;只有这五种&#xff09; 1.number&#xff1a;数字…...

蓝桥杯2020年第十一届省赛 CC++ 研究生组2.0

约数个数 #include<iostream> #include<cmath> using namespace std; int main(){int n 78120, ans 0, sqr sqrt(n);for(int i 1; i < sqr; i){if(n % i 0){ans;//printf("%d,", i);if(i * i ! n) {ans;//printf("%d,", n / i);}}}//…...

SOCKS5代理、代理IP、跨界电商、游戏技术与网络安全的综合探讨

在全球经济一体化的大背景下&#xff0c;"出海"已成为许多企业尤其是电商和游戏行业的重要战略方向。然而&#xff0c;随着企业业务的扩展到海外市场&#xff0c;网络安全、数据隐私和内容访问等问题也随之而来。本文将深入探讨SOCKS5代理、代理IP在跨界电商和游戏行…...

关于HTTP1.0、1.1、1.x、2.0、3.0与HTTPS之间的理解

关于HTTP1.0、1.1、1.x、2.0、3.0与HTTPS之间的理解 HTTP的由来 HTTP是Hyper Text Transfer Protocol&#xff08;超文本传输协议&#xff09;的缩写。它的发展是万维网协会&#xff08;World Wide Web Consortium&#xff09;和Internet工作小组IETF&#xff08;Internet Eng…...

交互式CLI工具开发指南:从原理到实战构建Node.js命令行应用

1. 项目概述&#xff1a;一个能“对话”的命令行工具如果你经常和命令行打交道&#xff0c;尤其是需要处理一些重复性、多步骤的配置或部署任务&#xff0c;你肯定有过这样的体验&#xff1a;打开一个脚本&#xff0c;面对一堆需要手动输入的参数&#xff0c;或者在不同的命令之…...

【场景生成与研究】考虑时序相关性MC的场景生成与削减研究附Matlab代码

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;擅长毕业设计辅导、数学建模、数据处理、程序设计科研仿真。&#x1f34e;完整代码获取 定制创新 论文复现点击&#xff1a;Matlab科研工作室&#x1f447; 关注我领取海量matlab电子书和数学建模资料 &#x1f3…...

小波散射网络:从理论优势到小样本图像分类实践

1. 小波散射网络为什么值得关注 第一次听说小波散射网络时&#xff0c;我和大多数搞机器学习的朋友反应一样&#xff1a;"这玩意儿和普通卷积神经网络&#xff08;CNN&#xff09;有什么区别&#xff1f;"直到去年接手一个医疗影像项目&#xff0c;手头只有200张标注…...

AI Agent社区平台架构实战:React 19 + Cloudflare边缘计算全栈开发

1. 项目概述&#xff1a;一个为AI Agent时代设计的社区平台如果你最近在折腾AI Agent&#xff0c;或者想找一些靠谱的AI工具&#xff0c;那你可能已经发现了一个痛点&#xff1a;信息太散了。教程、工具推荐、硬件配置、社区交流&#xff0c;这些内容散落在各个论坛、博客和社交…...

福特技术复兴:用户体验整合如何重塑汽车行业竞争格局

1. 福特的技术复兴之路&#xff1a;一次深度拆解十年前&#xff0c;当大多数传统汽车制造商还在为金融危机后的生存而挣扎时&#xff0c;福特汽车做出了一个在当时看来颇具前瞻性的决定&#xff1a;将技术&#xff0c;而非仅仅是马力或造型&#xff0c;作为品牌复兴的核心驱动力…...

ChatGPT 2026不是升级,是重构:Transformer-XL²架构、128K动态上下文、本地化模型热插拔——你还在用2023版?这5个信号说明你已被淘汰

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;ChatGPT 2026&#xff1a;一场从架构内核出发的范式革命 ChatGPT 2026 并非简单的能力叠加&#xff0c;而是以「动态稀疏混合专家&#xff08;Dynamic Sparse MoE&#xff09;」为核心重构推理路径&…...

Cursor AI助手Pro功能破解技术深度解析:三重防护机制与实战指南

Cursor AI助手Pro功能破解技术深度解析&#xff1a;三重防护机制与实战指南 【免费下载链接】cursor-free-vip [Support 0.45]&#xff08;Multi Language 多语言&#xff09;自动注册 Cursor Ai &#xff0c;自动重置机器ID &#xff0c; 免费升级使用Pro 功能: Youve reached…...

【AI 越强越离不开工具】:2026 年大模型开发者必备的工具链全景实战(附代码 + 架构图)

前言 目录 前言 一、核心悖论&#xff1a;为什么 AI 越强大&#xff0c;反而越依赖工具&#xff1f; 二、核心拆解&#xff1a;从 Tool 到 Skill 到 Agent&#xff0c;工具链的三层进化逻辑 三、2026 年 AI 工具链全景架构图 四、四大核心工具模块实战&#xff08;附可直…...

Godot开发者的宝藏:awesome-godot资源库使用指南与实战技巧

1. 项目概述&#xff1a;一个游戏开发者的“藏宝图”如果你正在用Godot引擎做游戏&#xff0c;或者对这个开源、轻量又强大的工具感兴趣&#xff0c;那你大概率听说过或者正在寻找一个叫“awesome-godot”的仓库。这可不是一个普通的代码项目&#xff0c;它更像是一份由全球God…...

告别MQTT!用Python Socket自建轻量数据通道,ESP32直连MySQL并更新网页状态

告别MQTT&#xff01;用Python Socket自建轻量数据通道&#xff0c;ESP32直连MySQL并更新网页状态 在物联网项目开发中&#xff0c;MQTT协议因其轻量级和发布-订阅模式而广受欢迎。然而&#xff0c;当我们需要更精细地控制数据传输流程、减少中间件依赖或优化资源使用时&#x…...