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

代码随想录算法训练营第36天| 435. 无重叠区间、 763.划分字母区间*、56. 合并区间

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;}
};

思路

首先按照右边界排序,只要后续区间的左边界小于先前区间的右边界,即可判定为重叠

763.划分字母区间*

力扣题目链接

代码

示例代码
class Solution {
public:vector<int> partitionLabels(string S) {int hash[27] = {0}; // i为字符,hash[i]为字符出现的最后位置for (int i = 0; i < S.size(); i++) { // 统计每一个字符最后出现的位置hash[S[i] - 'a'] = i;}vector<int> result;int left = 0;int right = 0;for (int i = 0; i < S.size(); i++) {right = max(right, hash[S[i] - 'a']); // 找到字符出现的最远边界if (i == right) {result.push_back(right - left + 1);left = i + 1;}}return result;}
};

思路

  • 统计每一个字符最后出现的位置

  • 从头遍历字符,并更新字符的最远出现下标,如果找到字符最远出现位置下标和当前下标相等了,则找到了分割点

56. 合并区间

力扣题目链接

代码

示例代码
class Solution {
public:vector<vector<int>> merge(vector<vector<int>>& intervals) {vector<vector<int>> result;if (intervals.size() == 0) return result; // 区间集合为空直接返回// 排序的参数使用了lambda表达式sort(intervals.begin(), intervals.end(), [](const vector<int>& a, const vector<int>& b){return a[0] < b[0];});
​// 第一个区间就可以放进结果集里,后面如果重叠,在result上直接合并result.push_back(intervals[0]); 
​for (int i = 1; i < intervals.size(); i++) {if (result.back()[1] >= intervals[i][0]) { // 发现重叠区间// 合并区间,只更新右边界就好,因为result.back()的左边界一定是最小值,因为我们按照左边界排序的result.back()[1] = max(result.back()[1], intervals[i][1]); } else {result.push_back(intervals[i]); // 区间不重叠 }}return result;}
};

思路

相关文章:

代码随想录算法训练营第36天| 435. 无重叠区间、 763.划分字母区间*、56. 合并区间

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>>&a…...

SpringBoot整合Nacos

文章目录 nacosnacos下载nacos启动nacos相关配置demo-dev.yamldemo-test.yamluser.yaml 代码pom.xmlUserConfigBeanAutoRefreshConfigExampleValueAnnotationExampleDemoApplicationbootstrap.yml测试结果补充.刷新静态配置 nacos nacos下载 下载地址 一键傻瓜试安装即可,官…...

vue3 浅学

一、toRefs 问题: reactive 对象取出的所有属性值都是⾮响应式的 解决: 利⽤ toRefs 可以将⼀个响应式 reactive 对象的所有原始属性转换为 响应式的 ref 属性 二、hook函数 将可复⽤的功能代码进⾏封装&#xff0c;类似与vue2混⼊。 三、ref&#xff1a;获取元素或者组件 let …...

三小时使用鸿蒙OS模仿羊了个羊,附源码

学习鸿蒙arkTS语言&#xff0c;决定直接通过实践的方式上手&#xff0c;而不是一点点进行观看视频再来实现。 结合羊了个羊的开发思路&#xff0c;准备好相应的卡片素材后进行开发。遇到了需要arkTS进行解决的问题&#xff0c;再去查看相应的文档。 首先需要准备卡片对应的图片…...

如何使用 ArcGIS Pro 制作热力图

热力图是一种用颜色表示数据密度的地图&#xff0c;通常用来显示空间分布数据的热度或密度&#xff0c;我们可以通过 ArcGIS Pro 来制作热力图&#xff0c;这里为大家介绍一下制作的方法&#xff0c;希望能对你有所帮助。 数据来源 教程所使用的数据是从水经微图中下载的POI数…...

SpringBoot之集成Redis

SpringBoot之集成Redis 一、Redis集成简介二、集成步骤2.1 添加依赖2.2 添加配置2.3 项目中使用 三、工具类封装四、序列化 &#xff08;正常都需要自定义序列化&#xff09;五、分布式锁&#xff08;一&#xff09;RedisTemplate 去实现场景一&#xff1a;单体应用场景二&…...

mybatis-plus与mybatis同时使用别名问题

在整合mybatis和mybatis-plus的时候发现一个小坑&#xff0c;单独使用mybatis&#xff0c;配置别名如下&#xff1a; #配置映射文件中指定的实体类的别名 mybatis.type-aliases-packagecom.jk.entity XML映射文件如下&#xff1a; <update id"update" paramete…...

MySQL基础知识——MySQL日志

一条查询语句的执行过程一般是经过连接器、 分析器、 优化器、 执行器等功能模块&#xff0c; 最后到达存储引擎。 那么&#xff0c; 一条更新语句的执行流程又是怎样的呢&#xff1f; 下面我们从一个表的一条更新语句进行具体介绍&#xff1a; 假设这个表有一个主键ID和一个…...

uniapp 地图分幅网格生成 小程序基于map组件

// 获取小数部分 const fractional function(x) {x Math.abs(x);return x - Math.floor(x); } const formatInt function(x, len) {let result x;len len - result.length;while (len > 0) {result 0 result;len--;}return result; }/*** 创建标准分幅网格* param …...

python项目练习——22、人脸识别软件

功能分析: 人脸检测: 识别图像或视频中的人脸,并标记出人脸的位置和边界框。 人脸识别: 识别人脸的身份或特征,通常使用已知的人脸数据库进行训练,然后在新的图像或视频中识别出人脸并匹配到相应的身份。 表情识别: 识别人脸的表情,如高兴、悲伤、愤怒等,并给出相应…...

Linux中账号登陆报错access denied

“Access denied” 是一个权限拒绝的错误提示&#xff0c;意味着用户无法获得所请求资源的访问权限。出现 “Access denied” 错误的原因可以有多种可能性&#xff0c;包括以下几种常见原因&#xff1a; 错误的用户名或密码&#xff1a;输入的用户名或密码不正确&#xff0c;导…...

python语言之round(num, n)小数四舍五入

文章目录 python round(num, n)小数四舍五入python round(num, n)基础银行家舍入&#xff08;Bankers Rounding&#xff09;利息被银行四舍五入后&#xff0c;你到底是赚了还是亏了&#xff1f; python小数位的使用decimal模块四舍五入(解决round 遇5不进) python round(num, n…...

安全风险攻击面管理如何提升企业网络弹性?

从研究人员近些年的调查结果来看&#xff0c;威胁攻击者目前非常善于识别和利用最具有成本效益的网络入侵方法&#xff0c;这就凸显出了企业实施资产识别并了解其资产与整个资产相关的安全态势的迫切需要。 目前来看&#xff0c;为了在如此复杂的网络环境中受到最小程度上的网络…...

常用的几款性能测试软件

Apache JMeter是一款免费、开源的性能测试工具&#xff0c;广泛应用于Web应用程序和服务的性能测试。它支持模拟多种不同类型的负载&#xff0c;可以测试应用程序在不同压力下的性能表现&#xff0c;并提供丰富的图表和报告来分析测试结果。 优点&#xff1a; 免费且开源&…...

谷歌google浏览器无法更新Chrome至最新版本怎么办?浏览器Chrome无法更新至最新版本

打开谷歌google浏览器提示&#xff1a;无法更新Chrome&#xff0c;Chrome无法更新至最新版本&#xff0c;因此您未能获得最新的功能和安全修复程序。点击「重新安装Chrome」后无法访问此网站&#xff0c;造成谷歌浏览器每天提示却无法更新Chrome至最新版本。 谷歌google浏览器无…...

认识异常(1)

❤️❤️前言~&#x1f973;&#x1f389;&#x1f389;&#x1f389; hellohello~&#xff0c;大家好&#x1f495;&#x1f495;&#xff0c;这里是E绵绵呀✋✋ &#xff0c;如果觉得这篇文章还不错的话还请点赞❤️❤️收藏&#x1f49e; &#x1f49e; 关注&#x1f4a5;&a…...

C++矩阵

C矩阵【基本】&#xff08;will循环&#xff09; #include<iostream> #include<string.h> using namespace std; int main() {int a[100][100]{0};int k 1;int i 0;int j 0;while(k<100){if(j>10){j0;i;}a[i][j]k;j;k;}i 0;j 0;while(true){if(i 9&am…...

解锁智能未来:用Ollama开启你的本地AI之旅

Ollama是一个用于在本地运行大型语言模型&#xff08;LLM&#xff09;的开源框架。它旨在简化在Docker容器中部署LLM的过程&#xff0c;使得管理和运行这些模型变得更加容易。Ollama提供了类似OpenAI的API接口和聊天界面&#xff0c;可以非常方便地部署最新版本的GPT模型并通过…...

CSS实现卡片在鼠标悬停时突出效果

在CSS中&#xff0c;实现卡片在鼠标悬停时突出&#xff0c;通常使用:hover伪类选择器。 :hover伪类选择器用于指定当鼠标指针悬停在某个元素上时&#xff0c;该元素的状态变化。通过:hover选择器&#xff0c;你可以定义鼠标悬停在元素上时元素的样式&#xff0c;比如改变颜色、…...

GPT建模与预测实战

代码链接见文末 效果图&#xff1a; 1.数据样本生成方法 训练配置参数&#xff1a; --epochs 40 --batch_size 8 --device 0 --train_path data/train.pkl 其中train.pkl是处理后的文件 因此&#xff0c;我们首先需要执行preprocess.py进行预处理操作&#xff0c;配置参数…...

Windows 11下保姆级安装Isaac Sim 4.5.0与Isaac Lab避坑全记录(含CUDA 12.8配置)

Windows 11下Isaac Sim 4.5.0与Isaac Lab全流程部署指南&#xff08;RTX 4090实测版&#xff09; 对于机器人仿真和AI开发领域的从业者来说&#xff0c;NVIDIA Isaac Sim和Isaac Lab无疑是当前最强大的工具组合之一。然而&#xff0c;当我在自己的RTX 4090显卡上首次尝试部署这…...

OpenClaw+nanobot技能开发:从零编写自定义文件处理器

OpenClawnanobot技能开发&#xff1a;从零编写自定义文件处理器 1. 为什么需要自定义文件处理技能 上周我整理项目文档时&#xff0c;遇到了一个典型问题&#xff1a;需要将数百个Markdown文件按照"日期-标题"格式批量重命名。手动操作不仅耗时&#xff0c;还容易出…...

分支限界法 vs 回溯法:5个关键区别和实际应用场景对比

分支限界法与回溯法&#xff1a;核心差异与工程实践指南 在解决复杂组合优化问题时&#xff0c;算法选择往往决定了程序的执行效率。当面对NP难问题时&#xff0c;两种经典算法——分支限界法和回溯法——常被开发者拿来比较。本文将深入剖析这两种算法的本质区别&#xff0c;并…...

【FreeRTOS实战入门】一、从CubeMX到第一个任务:手把手搭建FreeRTOS工程

1. 为什么选择FreeRTOS与CubeMX组合 第一次接触嵌入式实时操作系统时&#xff0c;很多人会纠结选择哪种RTOS。我当年在uC/OS-II和FreeRTOS之间犹豫了很久&#xff0c;最终选择了后者。原因很简单&#xff1a;FreeRTOS不仅完全免费开源&#xff0c;还有STM32CubeMX这个神器加持。…...

FRCRN模型结构解析:频域卷积+循环网络如何协同提升信噪比

FRCRN模型结构解析&#xff1a;频域卷积循环网络如何协同提升信噪比 1. 引言&#xff1a;语音降噪的挑战与突破 语音降噪技术一直面临着"既要又要"的难题&#xff1a;既要彻底消除背景噪声&#xff0c;又要完整保留人声细节。传统的降噪方法往往在这两者之间难以平…...

SpringBoot实战:RestTemplate如何优雅地上传文件?附完整代码示例

SpringBoot实战&#xff1a;RestTemplate文件上传的深度优化与避坑指南 在微服务架构盛行的今天&#xff0c;SpringBoot应用间的文件传输已成为日常开发中的高频需求。许多开发者在使用RestTemplate进行文件上传时&#xff0c;往往会遇到各种"诡异"的问题——明明代码…...

基于Matlab的转子系统临界转速与主振型求解:传递矩阵法及其参数涉及等截面、材料与轮盘参数的...

140.基于matlab的求解转子系统前三个临界转速和主振型的传递矩阵法转子系统的不平衡响应 参数涉及等截面参数、材料参数、轮盘参数 程序已调通&#xff0c;可直接运行传递矩阵法这玩意儿在转子动力学里属于实操性极强的工具&#xff0c;今天咱们就拿Matlab直接开搞转子系统的前…...

[认知计算] 神经网络架构:从生物启发的神经元到现代激活函数演进

1. 从生物神经元到人工神经元的数学抽象 1943年&#xff0c;麦卡洛克和皮茨在论文《神经活动中内在思想的逻辑演算》中首次提出用数学模型模拟生物神经元。这个看似简单的想法&#xff0c;彻底改变了人类对智能的认知方式。生物神经元由树突、细胞体和轴突三部分组成&#xff1…...

RWKV7-1.5B-g1a惊艳案例:将复杂段落压缩为三条逻辑闭环要点

RWKV7-1.5B-g1a惊艳案例&#xff1a;将复杂段落压缩为三条逻辑闭环要点 1. 模型能力展示&#xff1a;从复杂到简洁的文本处理 RWKV7-1.5B-g1a作为一款轻量级文本生成模型&#xff0c;在信息压缩和提炼方面展现出令人惊喜的能力。我们通过一个实际案例来展示它如何将复杂内容转…...

美胸-年美-造相Z-Turbo真实案例:快速生成24套手游服装方案

美胸-年美-造相Z-Turbo真实案例&#xff1a;快速生成24套手游服装方案 1. 项目背景与挑战 在手游《幻境物语》的角色设计阶段&#xff0c;美术团队面临一个紧迫需求&#xff1a;为游戏中的"花语使者"职业设计24套不同风格的服装方案。传统手工绘制方案需要至少3周时…...