[豪の算法奇妙冒险] 代码随想录算法训练营第三十天 | 452-用最少数量的箭引爆气球、435-无重叠区间、763-划分字母区间

news/2026/1/17 21:14:26/文章来源:https://www.cnblogs.com/SchwarzShu/p/19497144

代码随想录算法训练营第三十天 | 452-用最少数量的箭引爆气球、435-无重叠区间、763-划分字母区间


LeetCode452 用最少数量的箭引爆气球

题目链接:https://leetcode.cn/problems/minimum-number-of-arrows-to-burst-balloons/description/

文章讲解:https://programmercarl.com/0452.用最少数量的箭引爆气球.html

视频讲解:https://www.bilibili.com/video/BV1SA41167xe/?vd_source=b989f2b109eb3b17e8178154a7de7a51

​ 重叠区间问题,本题要先进行区间排序,我这里按照以左边界从小到大排序,然后分两种情况进行统计

​ 第一种情况是第 i 个气球的左边界大于第 i-1 个气球的右边界,此时说明这两个气球没有重叠的区间,记录上一个气球需要一个箭矢

​ 第二种情况是第 i 个气球的左边界小于等于第 i-1 个气球的右边界,此时说明这两个气球有重叠的区间,将第 i 个气球的右边界更新为第 i 个气球和第 i-1 个气球二者中最小右边界,然后继续往后遍历气球。这样,若下一个气球区间不重叠,则会进入情况一,增加箭矢数量;若下一个气球区间重叠,则会进入情况二,继续更新最小右边界

​ 此外进行排序时还要防止数值溢出的情况,最好使用Integer.compare(a[0], b[0])方法来替代return a[0] - b[0]

image-20260117195825104

class Solution {public int findMinArrowShots(int[][] points) {if(points.length == 0){return 0;}if(points.length == 1){return 1;}Arrays.sort(points, (a, b)->Integer.compare(a[0], b[0]));int result = 1;for(int i = 1; i < points.length; i++){if(points[i][0] > points[i-1][1]){result++;}else{points[i][1] = Math.min(points[i][1], points[i-1][1]);}}return result;}
}

LeetCode435 无重叠区间

题目链接:https://leetcode.cn/problems/non-overlapping-intervals/description/

文章讲解:https://programmercarl.com/0435.无重叠区间.html

视频讲解:https://www.bilibili.com/video/BV1A14y1c7E1/?vd_source=b989f2b109eb3b17e8178154a7de7a51

​ 本题实际要求的是重叠区间的数量,先进行区间排序,我这里按照以左边界从小到大排序,为了防止数值溢出的情况,使用Integer.compare(a[0], b[0])方法来替代return a[0] - b[0]

​ 当第 i 个区间的左边界小于第 i-1 个气球的右边界时,二者有重叠区间,将第 i 个区间的右边界更新为第 i 个区间和第 i-1 个区间二者中最小右边界,并做count++,然后继续往后遍历区间

image-20260117202237526

class Solution {public int eraseOverlapIntervals(int[][] intervals) {if(intervals.length == 0 || intervals.length == 1){return 0;}Arrays.sort(intervals, (a, b)->Integer.compare(a[0], b[0]));int result = 0;for(int i = 1; i < intervals.length; i++){if(intervals[i][0] < intervals[i-1][1]){result++;intervals[i][1] = Math.min(intervals[i][1], intervals[i-1][1]);}}return result;}
}

LeetCode763 划分字母区间

题目链接:https://leetcode.cn/problems/partition-labels/description/

文章讲解:https://programmercarl.com/0763.划分字母区间.html

视频讲解:https://www.bilibili.com/video/BV18G4y1K7d5/?vd_source=b989f2b109eb3b17e8178154a7de7a51

​ 在遍历的过程中相当于是要找每一个字母的最远边界,如果找到之前遍历过的所有字母的最远边界,则说明这个边界即为分割点。此时前面出现过所有字母,最远也就到此边界了

​ 首先先统计每一个字符最后出现的位置,然后再从头遍历字符,并更新字符的最远出现下标,如果找到字符最远出现位置下标和当前下标相等了,则找到了分割点

image-20260117210225098

class Solution {public List<Integer> partitionLabels(String s) {List<Integer> result = new ArrayList<>();int[] last = new int[26];char[] str = s.toCharArray();for(int i = 0; i < str.length; i++){last[str[i] - 'a'] = i;}int end = 0;int start = -1;for(int i = 0; i < str.length; i++){end = Math.max(end, last[str[i] - 'a']);if(i == end){result.add(i - start);start = end;}}return result;}
}

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

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

相关文章

彼得林奇的“家庭股票“在财富传承中的角色

彼得林奇的“家庭股票”在财富传承中的角色关键词&#xff1a;彼得林奇、家庭股票、财富传承、投资策略、长期价值摘要&#xff1a;本文深入探讨了彼得林奇所提出的“家庭股票”概念在财富传承中的重要角色。首先介绍了相关背景&#xff0c;包括目的、预期读者、文档结构和术语…

c++ qt 下载与环境配置

c++ qt 下载与环境配置qt在5.15版本后从离线安装改成了在线安装模式,下面先说一下qt的安装与环境配置步骤 1.点击右上角下载试用(Download. Try.)2.点击右上角Community User下载社区版3.根据操作系统下载合适的在线下…

智能厨房助手:AI Agent的营养均衡膳食规划

智能厨房助手:AI Agent的营养均衡膳食规划 关键词:智能厨房助手、AI Agent、营养均衡膳食规划、人工智能、健康饮食 摘要:本文围绕智能厨房助手利用AI Agent进行营养均衡膳食规划展开。深入探讨了相关核心概念、算法原理、数学模型,通过实际项目案例展示了如何实现这一功能…

全网最全继续教育TOP10AI论文软件测评与推荐

全网最全继续教育TOP10AI论文软件测评与推荐 2026年继续教育AI论文工具测评&#xff1a;为何需要一份权威榜单&#xff1f; 随着人工智能技术的不断进步&#xff0c;AI写作工具在学术研究和继续教育领域的应用日益广泛。然而&#xff0c;面对市场上众多产品&#xff0c;如何选择…

Unity 游戏逆向:使用 Il2CppDumper 还原 C# 符号表,修改 DLL 实现“无敌模式”

标签&#xff1a; #GameSecurity #ReverseEngineering #Unity #Il2Cpp #Assembly #IDA&#x1f9f1; 前言&#xff1a;Mono vs Il2Cpp Mono: C# -> IL (中间语言)。DLL 包含元数据&#xff0c;极易反编译。Il2Cpp: C# -> IL -> C -> Native Code (机器码)。DLL 只有…

深度剖析AI原生应用的用户体验优化

深度剖析AI原生应用的用户体验优化&#xff1a;从"工具盒子"到"智能伙伴"的进化之旅关键词&#xff1a;AI原生应用、用户体验优化、智能交互、上下文感知、信任构建摘要&#xff1a;当ChatGPT用自然对话帮你写周报&#xff0c;当Midjourney根据只言片语生成…

springclouded集成nacos3读取不到nacos配置

起因是今天写毕设,通过nacos配置DataSourece时,发现微服务启动报错没找到url。但是放本地又能正常启动,因为这个问题导致我折腾半天。没想到实际却很简单。 在nacos服务上的配置文件的data-id没有文件后缀名(图1)…

【多式联运】基于AFO算法、GA和PSO算法求解不确定多式联运路径优化问题,同时和MATLAB自带的全局优化搜索器进行对比附Matlab代码

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。&#x1f34e; 往期回顾关注个人主页&#xff1a;Matlab科研工作室&#x1f34a;个人信条&#xff1a;格物致知,完整Matlab代码及仿真咨询…

C#多线程编程03-异步编程

1、多线程编程侧重于分而治之的方面,异步编程同样是多线程编程但是侧重于将长时间运行的任务卸载,其强调了有任务在主线程之外运行的情况2、多线程编程通常用于CPU密集型操作,异步编程特别适用于I/O密集型操作:大多…

【多输入多输出(MIMO)干扰网络的能效优化】基于采用迭代半定规划-加权最小均方误差(SDP-WMMSE)算法与逐次凸逼近(SCA)算法求解MIMO干扰无线网络的能效优化问题研究附Matlab代码

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。&#x1f34e; 往期回顾关注个人主页&#xff1a;Matlab科研工作室&#x1f34a;个人信条&#xff1a;格物致知,完整Matlab代码及仿真咨询…

Unity 鼠标控制 API 技术文档

成员 类型 说明Cursor.visible bool 控制鼠标指针是否可见。true 表示显示,false 表示隐藏。Cursor.lockState CursorLockMode 控制鼠标指针的锁定状态。Cursor.SetCursor(Texture2D texture, Vector2 hotspot, Curso…

【多无人机】面向并行数据采集的多无人机粗粒度闭环轨迹设计无人机检测研究附Matlab代码

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。&#x1f34e; 往期回顾关注个人主页&#xff1a;Matlab科研工作室&#x1f34a;个人信条&#xff1a;格物致知,完整Matlab代码及仿真咨询…

【多无人机】面向城市空中交通的多无人机路径规划研究附Matlab代码

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。&#x1f34e; 往期回顾关注个人主页&#xff1a;Matlab科研工作室&#x1f34a;个人信条&#xff1a;格物致知,完整Matlab代码及仿真咨询…

导师推荐8个AI论文写作软件,助你轻松搞定本科论文!

导师推荐8个AI论文写作软件&#xff0c;助你轻松搞定本科论文&#xff01; AI 工具让论文写作不再难 在当今信息爆炸的时代&#xff0c;本科生们面对的不仅是繁重的课程压力&#xff0c;还有论文写作这一道“硬关”。无论是开题报告、文献综述还是最终的毕业论文&#xff0c;都…

揭秘提示工程架构师在智能作曲的实用应用技巧

提示工程架构师的智能作曲手册&#xff1a;用文字“编写”音乐的10个实用技巧 关键词 提示工程、智能作曲、大语言模型&#xff08;LLM&#xff09;、音乐生成、Prompt设计、上下文锚点、风格迁移 摘要 凌晨三点&#xff0c;短视频导演小王盯着电脑里的素材——老人摸着旧书店的…

用户态网络栈:DPDK 入门实战,绕过 Linux 内核实现“零拷贝”收发包

标签&#xff1a; #DPDK #NetworkProgramming #C #LinuxKernel #HighPerformance #ZeroCopy&#x1f422; 前言&#xff1a;Linux 内核为何成了瓶颈&#xff1f; 在传统的网络路径中&#xff0c;数据包的旅程是漫长而曲折的&#xff1a; 硬件中断&#xff1a;网卡收到包 -> …

Android 脱壳实战:Frida 脚本 Hook dlopen,在内存中 dump 出被加固的 DEX 文件

标签&#xff1a; #AndroidReverse #Frida #脱壳 #MobileSecurity #Hook #DEX ⚠️ 免责声明&#xff1a;本文仅供技术研究与安全防御教学使用。请勿将相关技术用于非法破解、制作外挂或破坏商业软件&#xff0c;否则后果自负。&#x1f4c9; 前言&#xff1a;脱壳的核心原理—…

导师严选2026 TOP8一键生成论文工具:专科生毕业论文必备测评

导师严选2026 TOP8一键生成论文工具&#xff1a;专科生毕业论文必备测评 2026年专科生论文写作工具测评&#xff1a;如何选择真正实用的助手 随着高校对论文质量要求的不断提升&#xff0c;专科生在毕业论文写作过程中面临的挑战也日益增加。从选题构思到文献检索&#xff0c;从…

【无人机通信】无人机 - 电力线宽带同步算法,该算法借助农场现有的电网基础设施,实现经济高效、可扩展的数据采集附Matlab代码

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。 &#x1f34e; 往期回顾关注个人主页&#xff1a;Matlab科研工作室 &#x1f447; 关注我领取海量matlab电子书和数学建模资料 &#…