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

【晴问算法】入门篇—贪心算法—区间不相交问题

题目描述


给定n个开区间,从中选择尽可能多的开区间,使得这些开区间两两没有交集。

输入描述

输出描述


输出一个整数,表示最多选择的开区间个数。

样例1
输入


4
1 3
2 4
3 5
6 7


输出


3


解释


最多选择(1,3)、(3,5)、(6,7)三个区间,它们互相没有交集。

#include<bits/stdc++.h>
using namespace std;
const int MAXN = 100;
int a[MAXN];
struct qj{int x;//左端点int y;//右端点
};//定义区间结构体,依次输入区间的左右端点
bool cmp(qj a, qj b){//qj类型的a和breturn a.y < b.y;//返回右端点较小的区间
}
int main(){struct qj a[MAXN];int n;cin >> n;for(int i=0;i<n;i++){scanf("%d %d",&a[i].x,&a[i].y);}sort(a,a+n,cmp);//按照右端点小的顺序int last = a[0].y;//第一个区间的左端点int count = 1;//第一个区间一定能被选中for(int i=1;i<n;i++){//从第二个区间开始判断if(a[i].x >= last){//如果当前区间的左端点大于等于上一个区间的右端点count++;//则不会交集,个数加1last = a[i].y;//更新当前的右端点}}printf("%d",count);return 0;
}

http://www.lryc.cn/news/323151.html

相关文章:

  • WPF意外无法启动?try-catch也无法捕捉?0xc0000409?
  • 微服务day05(中) -- ES索引库操作
  • AI智能电销机器人可以做哪些事情呢?智能机器人搭建
  • 别踩坑!2024年小红书代写代发机构选择指南!
  • 数据出路 -----pandas
  • Win11右键菜单定制
  • 将深度图转成2D激光
  • rust学习笔记(8-12)
  • JetPack之DataBinding基础使用
  • 设计模式学习笔记 - 设计原则与思想总结:2.运用学过的设计原则和思想完善之前性能计数器项目
  • docker入门(八)—— dockerfile详细介绍,编写dockerfile
  • 机器学习复习(9)——自定义dataset
  • 【Redis】缓存穿透
  • 编程出现bug?怎么用Python打印异常
  • P1958 上学路线
  • Android14之HIDL报错:Invalid sparse file format at header magic(一百九十六)
  • 旭日x3派目标跟随小车
  • 金潮实业邀您参观2024长三角快递物流展览会
  • 【超细完整版】C# WebService 通过URL生成WSDL文件和DLL文件 【生成篇】
  • 申请公派访问学者难不难?
  • 关于汽车中网改装需要报备吗?(第二天)
  • 面试官:对于 Java 中多态的理解是什么?
  • JUC-1M/75±5°超小型密封温度继电器 体积小、重量轻、控温精度高 JOSEF约瑟
  • filebeat 配置
  • Qt教程 — 3.5 深入了解Qt 控件:Display Widgets部件(1)
  • 网络安全框架和云安全参考架构介绍
  • 360企业安全浏览器兼容模式显示异常某个内容不显示 偶发现象 本地无法复现情况js
  • JVM常见启动参数
  • 单元测试、集成测试、系统测试区别
  • NIVision-相机图像采集