贪心算法:区间调度-射气球问题

贪心算法--区间调度问题 在本文中,我们深入探讨了贪心算法的原理、应用场景以及实现方法。贪心算法作为一种简单而强大的算法设计技巧,已经在许多领域得到了广泛的应用,如图论、任务调度、最优化问题等。通过每一步的局部最优选择,贪心算法能够快速地找到问题的最优解,具有较高的执行效率。在实际应用中,贪心算法的灵活运用能够为我们带来更多的便利和效益。通过深入理解贪心算法的原理和特点,我们可以更好地利用这一算法工具,为解决实际问题提供有效的解决方案。希望本文能够帮助读者更好地理解贪心算法,并在实际应用中取得更好的效果。 阅读详情

贪心算法:区间调度问题
母问题描述:
在一个会场中,安排活动,给定所有活动的开始时间与结束时间的集合放在数组nums[n][2]中。求问最多能安排几场活动,使每场活动之间的时间不冲突。
在这里插入图片描述

    public static int intervalSchedule(int[][] intvs){
        if (intvs.length==0) return 0;

        Arrays.sort(intvs, new Comparator<int[]>() {
            @Override
            public int compare(int[] o1, int[] o2) {
                return o1[1]-o2[1];
            }
        });
        int cnt = 1;
        int end = intvs[0][1];
        //Myself写法
        for (int i=1;i<intvs.length;i++){
            if (intvs[i][0]>=end){
                cnt++;
                end = intvs[i][1];
            }
        }
        return cnt;
        }

例题:
1.题目:图片

思路:先求不会重叠的,用intvs.length-cnt;得到需要移除的数量。

    public static int intervalSchedule(int[][] intvs){
        if (intvs.length==0) return 0;

        Arrays.sort(intvs, new Comparator<int[]>() {
            @Override
            public int compare(int[] o1, int[] o2) {
                return o1[1]-o2[1];
            }
        });
        int cnt = 1;
        int end = intvs[0][1];
        //Myself写法
        for (int i=1;i<intvs.length;i++){
            if (intvs[i][0]>=end){
                cnt++;
                end = intvs[i][1];
            }
        }
        return intvs.length-cnt;
        }

2.射气球问题

图片

思路:

图片

class Solution {
    public int findMinArrowShots(int[][] points) {
    if (points.length==0) return 0;

        Arrays.sort(points, new Comparator<int[]>() {
            @Override
            public int compare(int[] o1, int[] o2) {
                //return o1[1]-o2[1];
                return Integer.compare(o1[1], o2[1]);//防止差值过大而使用的比较方法!比如:{{-2147483646,-2147483645},{2147483646,2147483647}}
            }
        });
        int cnt = 1;
        int end = points[0][1];
    for (int[] interval : points) {
        int start = interval[0];
        // 把 >= 改成 > 就行了
        if (start > end) {
            cnt++;
            end = interval[1];
        }
    }
    return cnt;
    }
}
区间问题合集【Python】 区间调度问题之重叠区间、区间合并以及求区间交集。 解决区间问题的一般思路是先排序,再操作。关于排序方式的选择,不同的题型选择而不同的排序方式: 对于重叠区间问题,往往是和贪心策略有关,因此根据右端点排序,维护end变量。 用最少数量的箭引爆气球 无重叠区间 对于合并区间问题,习惯来说就是从左至右依次合并,因此根据左端点排序,维护一个res数组,每次从res中取最后一个区间的右端点作为比较的标准 合并区间 划分字母区间 452. 用最少数量的箭引爆气球 给定每 阅读详情

相关推荐

算法10、区间贪心(区间调度/区间覆盖)

从第二个闭区间开始遍历,若上一个点不在当前闭区间,即当前闭区间的左端点大于上一个点,则点数++,更新点为当前区间的右端点;所以转换为区间调度-区间不相交问题,只是上两题是开区间,而按照这道题目的描述,箭头如果碰到气球的边界气球也会爆炸,所以相当于求最多的不相交闭区间个数。这样情况下的两区间没有交集意味着:ri

topsylily的博客 892

贪心算法之射击气球

/** * 射击气球 */ int calShootBoolen(vector<pair<int, int>>& data) { if (data.size() < 2) return 1; std::sort(data.begin(), data.end(), [](auto&a, auto&b)->bool {return a.first < b.first; }); int shootNum = 1; int shoo.

看看世界看看你 274

【脑电信号处理与特征提取】P2-夏晓磊:脑电的神经起源与测量

ElectroEncephaloGraphyTherefore, EEG produces a graphed representation of the electrical activity occurring in a person’s brain.(把一个人的大脑中的电活动画出来)脑电头皮表面记录到的大脑活动产生的电信号(微伏)。(记录位置:硬脑膜/大脑皮层表面- ECoG,神经元群- LFP与MUR/MUA:活动位置:心电、眼电、肌电等)脑电图电压随时间变化的波形图。

m0_51474171的博客 1893

贪心力扣,poj相关算法题

贪心

Vevean2545116309的博客 417

汽车Bootloader流程

根据ISO14229-1 写的汽车行业 Bootloader流程 1:编程前 → 先读取软硬件版本号 22 F1 XX 软件信息 22 F1 XX 硬件信息 → 进入扩展会话extend diagnostic sessions 功能寻址 10 03 → 编程条件检测routine control:ECU升级条件的判断,如车速,检测车的型号 31 01 02 03 → 关闭DTC检测,(由于很多节点收不到其它节点的报文后会记录DTC故障)功能寻址 85 02 → 关闭诊断通讯(禁止各个节点的应用报...

weixin_41320142的博客 2830

全球半导体设备氧化钇熔射服务行业规模预测:预计未来六年CAGR为7.8%

本文将对“半导体设备氧化钇熔射服务”行业进行深度分析,探讨市场趋势的演变、核心竞争者的战略布局、供应链结构的内外特点、研发创新的最新进展、法规政策环境的适应性调整以及投资机会与风险评估。这一稳健的增长趋势表明半导体设备氧化钇熔射服务在电子行业中的重要性逐渐增强。由于全球对于高效、高精度和可靠的电子解决方案的需求增加,对能够提供这些功能的半导体设备氧化钇熔射服务的需求日益增长。由于半导体设备氧化钇熔射服务主要为就地服务型,其“配送”主要依赖于专业团队和技术设备的及时调配,强调服务的时效性和高质量。

CC1239777的博客 570

贪心算法-射击气球

文章目录什么是贪心算法Leetcode452-射击气球题目描述:解题框架:解题思路:最优情况的整体思路流程图:解题代码:解决问题的Solution类(注意sort函数的使用)main函数测试程序接口 什么是贪心算法 贪心算法不从整体最优上加以考虑,所做出的仅是在某种意义上的局部最优选择。使用贪心策略要注意局部最优与全局最优的关系,选择当前的局部最优并不一定能推导出问题的全局最优。贪心策略解题需要解决以下两个问题: 1、该问题是否适合使用贪心策略求解,也就是该问题是否具有贪心选择性质 。 2、制定贪心策略,以

CppYyds的博客 774

Matlab+Matpower实战:手把手教你生成IEEE14节点FDIA攻击数据集(附完整代码)

本文提供了一份基于Matlab与Matpower工具构建IEEE14节点FDIA攻击数据集的完整实战指南。通过动态负荷数据模拟、潮流计算、状态估计及隐蔽攻击向量注入,手把手教你生成可用于电力系统网络安全研究的仿真数据集,并附有核心代码与调试技巧。

bean的博客 397

452--射气球--贪心

if(points==null||points.length==0) return 0; //右边界排序; Arrays.sort(points,(a,b)-> a[1]>b[1]?1:-1); int count = 1; int pos = points[0][1]; for(int i=1;i<points.length;i++){ if(points[i][0]>pos).

qch60925的博客 151

OpenClaw实现多agent协作研究

本文介绍了如何构建多agent协作系统,通过飞书机器人实现任务分配与执行。系统包含三个agent:research_leader(总调度)、research_content(内容生成)和research_review(内容审核)。详细说明了agent配置方法(包括创建命令、权限设置)、飞书channel绑定方式,以及通过共享目录和会话机制实现协作。最后展示了应用示例,用户只需向leader机器人下达任务,系统即可自动完成内容生成和审核的全流程。

hhue2007的专栏 615

【AUTOSAR AP PHM 】PHM 标准化“检查点上报接口”落地指南(AUTOSAR AP · R24-11取向)

本文介绍了AUTOSAR AP R24-11标准下PHM(平台健康管理)模块中"检查点上报接口"的标准化实现方案。主要内容包括: 核心设计理念:采用"配置优先"原则,通过部署模型预先定义监管参数,应用进程只需简单上报枚举标识,具体判定由PHM执行。 职责划分: 应用进程:仅调用ReportCheckpoint接口上报枚举值 PHM:负责Alive计数、Deadline区间判定和Logical路径校验 EM/IdsM:提供进程状态和越权检测 三类监管机制: Alive:

探索C++编程的奥秘,分享深入的技术见解和实践,旨在激发读者创造力与解决问题的思维。 219

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

排序 + 贪心策略:排序气球的结束坐标,并选择最优的箭射击位置来覆盖尽可能多的气球。关键点:每次都将箭射向气球的结束坐标,贪心地缩小射击范围,减少箭的数量。//对右边界进行排序i++) {if(points[i][0] > currentEnd) { //需要增加箭数量的情况arrows++;

985小菜鸡 750

YOLO26 多模态融合技术:RGB+红外/深度/雷达融合

YOLO(You Only Look Once)是一种流行的目标检测算法,其最大特点是快速且端到端地完成图像中所有目标的检测与分类任务。YOLO首次在2016年由Joseph Redmon等人提出,彻底改变了传统目标检测(如R-CNN系列)的思路,被广泛应用于自动驾驶、视频监控、工业质检等场景。

一键难忘的博客 3523

LC_2_1贪心算法 区间调度问题

LC_2_1贪心算法 区间调度问题

深入探索技术领域,持续学习成长,追求实践与进步,共同构建技术未来 1121

【服务器电源架构与关键技术发展趋势】深度解析架构、方案、玩家与未来趋势

技术维度:台达 / 光宝在高功率密度(97%+ 效率)和垂直整合上领先,大陆厂商(麦格米特 / 欧陆通)在成本控制和快速响应上更优,国际厂商(英飞凌)聚焦核心器件突破。 客户维度:台达绑定英伟达核心供应链,麦格米特 / 欧陆通兼顾国内外客户,光宝 / 中恒电气侧重云端与互联网厂商。 趋势适配:所有厂商均加速布局 800V 高压架构、液冷技术和高功率 Power Shelf,以应对 AI 服务器单柜功率从 10kW→200kW 的升级需求。

昔时扬尘处 723

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

运用贪心算法来做时间管理

点击上方蓝字设为星标东哥带你手把手撕力扣~作者:labuladong 公众号:labuladong若已授权白名单也必须保留以上来源信息什么是贪心算法呢...

fdl123456的博客 871

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

贪心算法之区间调度问题

什么是贪心算法呢?贪心算法可以认为是动态规划算法的一个特例,相比动态规划,使用贪心算法需要满足更多的条件(贪心选择性质),但是效率比动态规划要高。 比如说一个算法问题使用暴力解法需要指数级时间,如果能使用动态规划消除重叠子问题,就可以降到多项式级别的时间,如果满足贪心选择性质,那么可以进一步降低时间复杂度,达到线性级别的。 什么是贪心选择性质呢,简单说就是:每一步都做出一个局部最优的选择,最终的结...

fdl123456的博客 1395

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

一份贪心算法区间调度问题解法攻略,拿走不谢

作者 |labuladong来源 |labuladong(ID:labuladong)【导读】什么是贪心算法呢?贪心算法可以认为是动态规划算法的一个特例,相比动态规划...

AI科技大本营 3133

java调度问题的贪心算法_贪心算法之区间调度问题

读完本文,你可以去力扣拿下如下题目:435. 无重叠区间452.用最少数量的箭引爆气球-----------什么是贪心算法呢?贪心算法可以认为是动态规划算法的一个特例,相比动态规划,使用贪心算法需要满足更多的条件(贪心选择性质),但是效率比动态规划要高。比如说一个算法问题使用暴力解法需要指数级时间,如果能使用动态规划消除重叠子问题,就可以降到多项式级别的时间,如果满足贪心选择性质,那么可以进一步降...

weixin_39728544的博客 279

算法学习笔记(7.4)-贪心算法(区间调度问题)

算法学习笔记(7.4)-贪心算法(区间调度问题)

2301_76874968的博客 1160

贪心算法_区间调度问题

引用:[labuladong](https://labuladong.gitbook.io/algo/dong-tai-gui-hua-xi-lie/tan-xin-suan-fa-zhi-qu-jian-tiao-du-wen-ti) 一、问题概述 言归正传,本文解决一个很经典的贪心算法问题 Interval Scheduling (区间调度问题)。给你很多形如 [start, end] 的闭区间, 请你设计一个算法,算出这些区间中最多有几个互不相交的区间。 二、贪心解法: 1. 从区间集合 intvs

ryontang的博客 857

Day26:贪心算法part4(452.用最少数量的箭引爆气球、435.无重叠区间、763.划分字母区间)

按照起始位置排序,从前向后遍历气球数组,靠左尽可能让气球重复。如果气球重叠了,重叠气球中右边边界的最小值 之前的区间一定需要一个弓箭。以题目示例: [[10,16],[2,8],[1,6],[7,12]]为例,如图:(方便起见,已经排序)可以看出首先第一组重叠气球,一定是需要一个箭,气球3,的左边界大于了 第一组重叠气球的最小右边界,所以再需要一支箭来射气球3了。// 根据气球直径的开始坐标从小到大排序// 使用Integer内置比较方法,不会溢出// points 不为空至少需要一支箭。

m0_57570035的博客 1090

贪心算法实战:引爆气球与区间划分技巧

贪心算法是一种通过局部最优选择达到全局最优解的高效算法范式,在解决区间调度、资源分配等问题时表现出色。其核心原理是通过排序预处理和迭代选择,确保每次决策都能最大化后续选择空间。在算法面试中,贪心策略常用于解决最优化问题,如LeetCode经典题目'用最少数量的箭引爆气球'和'无重叠区间'。这些题目展示了如何通过记录最后出现位置和动态扩展区间等技术手段,将复杂问题转化为可管理的子问题。掌握贪心算法不仅能提升编码效率,更能培养对问题贪心选择性质的敏感度,在分布式计算、任务调度等工程场景中具有重要应用价值。

weixin_30603633的博客 422

c语言区间调度(贪心)之用最少数量的箭引爆气球

区间调度算法:贪心算法题目描述流程图代码展示运行结果相关原理 题目描述 在二维空间中有许多球形的气球。对于每个气球,提供的输入是水平方向上,气球直径的开始和结束坐标。由于它是水平的,所以y坐标并不重要,因此只要知道开始和结束的x坐标就足够了。开始坐标总是小于结束坐标。平面内最多存在104个气球。 一支弓箭可以沿着x轴从不同点完全垂直地射出。在坐标x处射出一支箭,若有一个气球的直径的开始和结束坐标...

字符串距离问题动态规划 489

2021秋招-算法-贪心算法之区间调度问题

算法-贪心算法之区间调度问题 大佬总结-贪心算法之区间调度问题 什么是贪心算法呢?贪心算法可以认为是动态规划算法的一个特例,相比动态规划,使用贪心算法需要满足更多的条件(贪心选择性质),但是效率比动态规划要高。 比如说一个算法问题使用暴力解法需要指数级时间,如果能使用动态规划消除重叠子问题,就可以降到多项式级别的时间,如果满足贪心选择性质,那么可以进一步降低时间复杂度,达到线性级别的。 什么是贪心选择性质呢,简单说就是:每一步都做出一个局部最优的选择,最终的结果就是全局最优。注意哦,这是一种特殊性质,其实只

LBJ_King的博客 703

贪心算法之区间调度问题/435无重叠区间/452用最少数量的箭引爆气球

给你很多形如 [start, end] 的闭区间,请你设计一个算法,算出这些区间中最多有几个互不相交的区间。注意边界相同并不算相交。 正确的思路其实很简单,可以分为以下三步: 从区间集合 intvs 中选择一个区间 x,这个 x 是在当前所有区间中结束最早的(end 最小)。 把所有与 x 区间相交的区间从区间集合 intvs 中删除。 重复步骤 1 和 2,直到 intvs 为空为止。之前选出的那些 x 就是最大不相交子集。 class Solution { public: int.

Lifelong Learning Pan 422
上一篇: 动态规划:完全背包问题
下一篇: 贪心算法:跳跃问题
folinggg
博客等级 码龄6年 20粉丝 53原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值