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

【代码随想录算法训练营——Day28】贪心算法——452.用最少数量的箭引爆气球、435.无重叠区间、763.划分字母区间

LeetCode题目链接
https://leetcode.cn/problems/minimum-number-of-arrows-to-burst-balloons/description/
https://leetcode.cn/problems/non-overlapping-intervals/
https://leetcode.cn/problems/partition-labels/description/

题解
452.用最少数量的箭引爆气球
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
题解和代码都看得迷迷糊糊。
在这里插入图片描述
在这里插入图片描述
chatGPT解读了一下印象加深了。

435.无重叠区间
上一题没看懂,仿照上一题的代码写看行不行。
写了一下,没写对。
题解用了一个很巧妙的思想,记录非交叉区间的个数,总数减去这个数即为重叠区间数。题解是用右边界排序,我按左边界排序试一下。
等一下,我先前写的代码改了一句就通过了,就是intervals[i][1] = min(intervals[i][1], intervals[i - 1][1]);这一句。

763.划分字母区间
在这里插入图片描述
题解的一个重要思想是要求字符出现的最大次数的位置,是这一组字符里面出现距离最远的字符,的位置为这段字符串的结束位置。

代码

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

在这里插入图片描述

//435.无重叠区间
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;class Solution {
private:static bool cmp(const vector<int>& a, const vector<int>& b) {if (a[0] == b[0]) return a[1] < b[1];return a[0] < b[0];}
public:int eraseOverlapIntervals(vector<vector<int>>& intervals) {sort(intervals.begin(), intervals.end(), cmp);int result = 0;for (int i = 1;i < intervals.size();i++) {if (intervals[i][0] < intervals[i - 1][1]) {result += 1;intervals[i][1] = min(intervals[i][1], intervals[i - 1][1]);}}return result;}
};//class Solution {
//public:
//    // 按照区间右边界排序
//    static bool cmp(const vector<int>& a, const vector<int>& b) {
//        return a[0] < b[0];
//    }
//    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++;
//            }
//            else {
//                end = min(end, intervals[i][1]);
//            }
//        }
//        return intervals.size() - count;
//    }
//};int main() {vector<vector<int>> nums1 = { {1,2} ,{2,3},{3,4},{1,3} }, nums2 = { {1,2} ,{1,2},{1,2} }, nums3 = { {1,2} ,{2,3} }, nums4 = { {1,100} ,{11,22},{1,11},{2,12} };Solution s;printf("%d", s.eraseOverlapIntervals(nums2));return 0;
}

在这里插入图片描述

//763.划分字母区间

在这里插入图片描述

http://www.dtcms.com/a/454185.html

相关文章:

  • 企业在建设自己网站时哪个网站可以免费做推广
  • 数据备份-从策略到实战
  • 598网站建设推广渠道有哪些
  • 一文畅览 Qt 控件类
  • 高校网站建设招标公告企业网站模板推荐
  • 网站建设所需域名百度推广优化是什么?
  • 网站的颜色搭配专业营销网站开发
  • 第八个实验——浮动路由
  • 西安网站建设云阔网络熊掌号网站建设骗
  • 爱唐山做贡献月评十佳投票网站网站空间稳定性
  • 江苏省城乡建设网站玉溪做网站的公司
  • 专业柳州网站建设多少钱中卫网站推广营销
  • 付网站首期合同款怎么做分录彩票网站wordpress模板
  • 数据合规不是法律选择题:当数据边界成为商业战场
  • 网站设计企网站集约化建设的目的
  • 手机网站的文本排版是怎么做的如何写一个wordpress主题
  • OKZOO亮相TOKEN2049,展示AIoT网络生态新蓝图HealthFi
  • 淮安集团网站建设济南 域名注册 网站建设
  • B012基于博途西门子1200PLC温室大棚控制系统仿真
  • 机房网站建设方案个人资讯网站建设
  • 邯郸北京网站建设WordPress滑动验证码插件
  • 做网站要服务器和什么wordpress 点赞分享
  • 网站建设要学哪些软件有哪些内容网站开发用台式机电脑配置
  • C++----哈希以及unorder map与set的封装
  • 网站开发框架具体使用方法wordpress创建分类目录
  • 百度网站收录删除网站推广的公司
  • flash 的网站西安制作网站
  • 快速入门SpringAI-SpringAI Alibaba实战
  • window显示驱动开发-验证从用户模式发送到内核模式的专用数据
  • 网站建设 中企动力南昌0792在线购物网站 模版