贪心算法习题其二【力扣】【算法学习day.19】

前言

###我做这类文档一个重要的目的还是给正在学习的大家提供方向(例如想要掌握基础用法,该刷哪些题?)我的解析也不会做的非常详细,只会提供思路和一些关键点,力扣上的大佬们的题解质量是非常非常高滴!!!


习题

1.用最少数量的箭引爆气球

题目链接: 452. 用最少数量的箭引爆气球 - 力扣(LeetCode)

题面:

基本分析: 可以通过将右边界升序排序来解决问题

代码:

java 复制代码
class Solution {
    public int findMinArrowShots(int[][] points) {
        int n = points.length;
        int sum = 0;
        int count = 0;
        int flag = 0;
        Arrays.sort(points, new Comparator<int[]>() {
            @Override
            public int compare(int[] o1, int[] o2) {
               return o1[1]-o2[1];
            }
        });

        int l = 0;
        while(l<n){
            if(count==0){
                count = 1;
                flag = points[l][1];
                l++;
                continue;
            }
            if(points[l][0]<=flag&&points[l][1]>=flag){
                l++;

            }else{
                sum++;
                count=0;
            }

        }
        if(count==1)sum++;
        return sum;

    }
}

2.无重叠区间

题目链接: 435. 无重叠区间 - 力扣(LeetCode)

题面:

基本分析: 将右边界升序排序,然后找不互相重叠的有多少个即可

代码:

java 复制代码
class Solution {
    public int eraseOverlapIntervals(int[][] intervals) {
        if (intervals.length == 0) {
            return 0;
        }
        Arrays.sort(intervals,new Comparator<int[]>(){
            @Override
            public int compare(int[] o1, int[] o2) {
                return o1[1]-o2[1];
            }
        });
        int n = intervals.length;
        int right=intervals[0][1];
        int ans=1;
        for (int i = 1; i < n; i++) {
            if(intervals[i][0]>=right){
                ans++;
                right=intervals[i][1];
            }
        }
        return n-ans; 
    }
}

后言

上面是贪心算法的部分习题,下一篇会讲解贪心算法的其他相关力扣习题,希望有所帮助,一同进步,共勉!

相关推荐
今天和Aboo结婚了吗16 分钟前
【Broker一重启消息没了:一次RabbitMQ非持久化+没开Confirm的血亏事故】
java·rabbitmq·messagequeue·bug排查
daidaidaiyu6 小时前
一文学习 工作流开发 BPMN、 Flowable
java
2401_891482177 小时前
多平台UI框架C++开发
开发语言·c++·算法
SuniaWang7 小时前
《Spring AI + 大模型全栈实战》学习手册系列 · 专题六:《Vue3 前端开发实战:打造企业级 RAG 问答界面》
java·前端·人工智能·spring boot·后端·spring·架构
sheji34167 小时前
【开题答辩全过程】以 基于springboot的扶贫系统为例,包含答辩的问题和答案
java·spring boot·后端
88号技师7 小时前
2026年3月中科院一区SCI-贝塞尔曲线优化算法Bezier curve-based optimization-附Matlab免费代码
开发语言·算法·matlab·优化算法
t198751287 小时前
三维点云最小二乘拟合MATLAB程序
开发语言·算法·matlab
无敌昊哥战神7 小时前
【LeetCode 257】二叉树的所有路径(回溯法/深度优先遍历)- Python/C/C++详细题解
c语言·c++·python·leetcode·深度优先
㓗冽7 小时前
8皇后·改-进阶题16
数据结构
m0_726965988 小时前
面面面,面面(1)
java·开发语言