代码随想录训练营Day35(贪心之区间合并问题):Leetcode435、763、56

Leetcode435:

题目描述:

给定一个区间的集合 intervals ,其中 intervals[i] = [starti, endi] 。返回 需要移除区间的最小数量,使剩余区间互不重叠 

示例 1:

输入: intervals = [[1,2],[2,3],[3,4],[1,3]]
输出: 1
解释: 移除 [1,3] 后,剩下的区间没有重叠。

示例 2:

输入: intervals = [ [1,2], [1,2], [1,2] ]
输出: 2
解释: 你需要移除两个 [1,2] 来使剩下的区间没有重叠。

示例 3:

输入: intervals = [ [1,2], [2,3] ]
输出: 0
解释: 你不需要移除任何区间,因为它们已经是无重叠的了。

代码及注释:

class Solution {
public:int eraseOverlapIntervals(vector<vector<int>>& intervals) {//按照区间左值从小到大排序,如果左值相同则按照右值从小到大sort(intervals.begin(),intervals.end(),[](const vector<int>&a,const vector<int>&b){if(a[0]!=b[0])return a[0]<b[0];else return a[1]<b[1];});int n=intervals.size();int i=0;//记录需要移除区间的最小数量int ans=0;//遍历区间for(int j=1;j<n;j++){//如果跟前一个区间有重叠if(intervals[j][0]<intervals[i][1]){//必须删除,但不确定删除二者哪一个区间ans++;//如果前一个区间right还大于当前区间,删除right大的的区间好一点if(intervals[i][1]>=intervals[j][1]){i=j;}}else{i=j;}}return ans;}
};

Leetcode763:

题目描述:

给你一个字符串 s 。我们要把这个字符串划分为尽可能多的片段,同一字母最多出现在一个片段中。

注意,划分结果需要满足:将所有划分结果按顺序连接,得到的字符串仍然是 s 。

返回一个表示每个字符串片段的长度的列表。

示例 1:

输入:s = "ababcbacadefegdehijhklij"
输出:[9,7,8]
解释:
划分结果为 "ababcbaca"、"defegde"、"hijhklij" 。
每个字母最多出现在一个片段中。
像 "ababcbacadefegde", "hijhklij" 这样的划分是错误的,因为划分的片段数较少。 

示例 2:

输入:s = "eccbbbbdec"
输出:[10]

代码及注释:

class Solution {
public:vector<int> partitionLabels(string s) {int f[26]={0};int n=s.size();//状态转换,记录每个字母最后出现下标位置for(int i=0;s[i];i++){f[s[i]-'a']=i;}vector<int>ans;//记录当前片段,[start,end]int end=0;int start=0;//end一直更新为[start,end]中的所有字母最后出现的索引最大值for(int i=0;i<n;i++){//最大值end=max(end,f[s[i]-'a']);//走到一个片段的尾部了,保证[start,end]中的字母只会出现在[start,end]中if(i==end){ans.push_back(end-start+1);start=end+1;end=f[s[i]-'a']+1;}}return ans;}
};

Leetcode56:

题目描述:

以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi] 。请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间 。

示例 1:

输入:intervals = [[1,3],[2,6],[8,10],[15,18]]
输出:[[1,6],[8,10],[15,18]]
解释:区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].

示例 2:

输入:intervals = [[1,4],[4,5]]
输出:[[1,5]]
解释:区间 [1,4] 和 [4,5] 可被视为重叠区间。

代码及注释:

class Solution {
public:vector<vector<int>> merge(vector<vector<int>>& intervals) {sort(intervals.begin(),intervals.end(),[](const vector<int>&a,const vector<int>&b){if(a[0]!=b[0])return a[0]<b[0];else return a[1]<b[1]; });int left=intervals[0][0];int right=intervals[0][1];int n=intervals.size();vector<vector<int>>ans;for(int i=1;i<n;i++){if(intervals[i][0]<=right){if(intervals[i][1]>right)right=intervals[i][1];}else{ans.push_back({left,right});left=intervals[i][0];right=intervals[i][1];}}ans.push_back({left,right});return ans;}
};

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

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

相关文章

zabbix基础

监控系统基本介绍&#xff1a; 企业级应用中&#xff0c;服务器数量众多&#xff0c;一般情况下需要维护人员进行长时间对服务器体系、计算机或其他网络设备&#xff08;包括硬件和软件&#xff09;进行长时间进行性能跟踪&#xff0c;保证正常稳定安全的运行&#xff0c;于是…

安全多方计算简介

安全多方计算 安全多方计算&#xff08;SecureMulti-partComputation,MPC&#xff09;是80年代提出的一个概念&#xff0c;它已成为隐私计算的核心技术之一。在密码学和区块链技术应用中占据重要地位。 MPC数学定义&#xff1a; 假设存在n个参与方 P 1 , P 2 , … , P n P_1,…

python实现英文短文自动分词写入文本文件

欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一.前言 二.代码 三.使用 四.分析 一.前言 英文短文自动分词(Automatic Word Segmentation)在自然语言处理和文本分析中有着广泛的应用。

详解typora配置亚马逊云科技Amazon S3图床

欢迎免费试用亚马逊云科技产品&#xff1a;https://mic.anruicloud.com/url/1333 当前有很多不同的博客社区&#xff0c;不同的博客社区使用的编辑器也不尽相同&#xff0c;大概可以分为两种&#xff0c;一种是markdown格式&#xff0c;另外一种是富文本格式。例如华为云开发者…

Python中对象数据的持久化操作学习笔记

在Python中&#xff0c;数据的持久化通常指的是将内存中的数据&#xff08;如变量、列表、字典等&#xff09;保存到硬盘上&#xff0c;以便在程序退出或重新启动后仍然可以访问这些数据。Python提供了多种实现数据持久化的模块&#xff0c;其中包括marshal和shelve。 一、mar…

深度学习基础之《TensorFlow框架(17)—卷积神经网络》

一、卷积神经网络介绍 1、背景 随着人工智能需求的提升&#xff0c;我们想要做复杂的图像识别&#xff0c;做自然语言处理&#xff0c;做语义分析翻译等等&#xff0c;多层神经网络的简单叠加显然力不从心 2、卷积神经网络与传统多层神经网络对比 &#xff08;1&#xff09;传…

MotionDiffuse: Text-Driven Human Motion Generation withDiffusion Model # 论文阅读

URL https://arxiv.org/pdf/2208.15001 主页&#xff1a;https://mingyuan-zhang.github.io/projects/MotionDiffuse.html TD;DR 22 年 8 月商汤的文章&#xff0c;引用量 200。基于 SD&#xff0c;任务是输入文本的动作描述&#xff0c;生成对应的动作序列。 已有的 moti…

windows 10安装 docker desktop

升级 windows 10 windows 10 升级到 20H2&#xff0c;如 20H2 19045.4291。 注意&#xff1a;需返回更新&#xff0c;重启计算机&#xff0c;确保更新完整。 bios 开启虚拟化 开启cpu虚拟化功能。 windows 启用功能 启用hyper-v 启用 wsl 安装 wsl https://learn.microso…

C语言typedef 与 #define 宏的相似之处与不同之处是什么?

一、问题 typedef 关键字的功能就是给⼀个已经存在的数据类型起⼀个在本程序中能够体现实际作⽤的名字。#define 宏定义是为⼀个字符串起⼀个别名&#xff0c;在程序中应⽤到该字符串时&#xff0c; ⽤这个别名来替代。那么 typedef 与 #define 的相似之处是什么&#xff0c;不…

【环境配置】vsCode 中使用 conda 配置虚拟环境

文章目录 准备前言在 vsCode 中直接创建创建步骤测试更新环境 使用 Anaconda 建立虚拟环境创建步骤在 vsCode 中选择环境 总结 准备 在看本博客之前&#xff0c;希望大家有以下知识储备&#xff1a; 能够正确安装 vsCode&#xff0c;并配置好 python 环境&#xff1b;了解并安…

初认识鸿蒙

初认识鸿蒙 相关鸿蒙的华为网站华为开发者官方网站初学者模块:社区--鸿蒙--论坛模块:学堂--鸿蒙--学习路径模块:Codelabs--鸿蒙有经验者产品页黄大年茶思屋其他页面HarmonyOS Developer初学者模块:文档模块:开发--HarmonyOS模块:开发--HMS Core模块:开发--AppGallery Co…

Backup

目录 1、 Backup 1.1、 SQLException 1.2、 printInfo 1.3、 getSQLValue Backup package com.my.blog.website.utils.backup;

一觉醒来 AI科技圈发生的大小事儿 05月09日

&#x1f4f3;AlphaFold 3 重磅问世&#xff0c;全面预测蛋白质与所有生命分子相互作用及结构&#xff0c;准确性远超以往水平 Google DeepMind发布了AlphaFold3模型&#xff0c;能够联合预测蛋白质、核酸、小分子等复合物结构&#xff0c;准确性显著提高&#xff0c;对跨生物…

安服仔养成篇——等级保护

最近刚好对等保的一些知识有疑问&#xff0c;查了资料解答后刚好又能写一期&#xff0c;这期就用问答的方式来写吧&#xff0c;刚刚好给和我一样蒙蔽的师傅们走进等保。 ①等级保护针对哪些单位&#xff1f; 答&#xff1a; 政府机关&#xff1a;各大部委、各省级政府机关、各…

Flask SQLAlchemy 技术指南

文章目录 什么是 Flask SQLAlchemy&#xff1f;安装 Flask SQLAlchemy创建 Flask 应用和数据库模型添加和查询数据运行 Flask 应用总结**数据库迁移&#xff08;Database Migrations&#xff09;****复杂查询****关系模型****事务处理****性能优化****安全性****扩展功能** Fla…

深化产教融合,泰迪智能科技助力西南林业大学提质培优

2024年5月7日&#xff0c;泰迪智能科技昆明分公司院校部总监查良红和数据部负责人余雄亮赴西南林业大学理学院就工作室共建事宜进行交流会谈。西南林业大学理学院院长张雁、党委副书记魏轶、副院长谢爽、就业负责人罗丽及学生代表参与本次交流会。 会议伊始&#xff0c;谢副院长…

邮件大附件系统如何进行安全、高效的大附件发送?

邮件大附件系统是一套解决传统电子邮件系统&#xff0c;在发送大文件时遇到限制的解决方案。由于传统电子邮件系统通常对附件大小有限制&#xff0c;这使得发送大文件变得困难。邮件大附件系统通过各种技术手段&#xff0c;允许用户发送超过传统限制的大文件&#xff0c;通常在…

Java面试常见问题

操作系统 1.Q: 在操作系统中&#xff0c;什么时候会发生用户态到内核态的切换 A: 操作系统中&#xff0c;用户态和内核态是两种不同的权限级别&#xff0c;他们对应着不同的执行环境和执行权限。用户态事指程序在一般的运行情况下的的级别&#xff0c;它具有别较低的权限级别&…

Civitai 转 diffusers 的 base model

Civitai 转 diffusers 的 base model Q1 Q1 pipe StableDiffusionControlNetImg2ImgPipeline.from_pretrained(# "runwayml/stable-diffusion-v1-5", "/data/model/basemodel/realistic_v10BAKEDVAE.safetensors",controlnetcontrolnet, torch_dtypetorc…

华为ICT学院教师指南(HCAI认证)结课测试

华为基于“平台+生态”战略,坚持联合教育培训机构、行业协会及合作伙伴等各类资源,共同构筑ICT人才生态良性发展的使能平台,这其中华为的角色有哪些? 0 人才标准的制定者 1 人才联盟的建设者 2 人才价值的传播者 3 以上全部 下列哪些技术方向属于华为授权课程? 0 网络…