【晴问算法】入门篇—贪心算法—区间选点问题

题目描述

给定n个闭区间,问最少需要确定多少个点,才能使每个闭区间中都至少存在一个点。

输入描述

输出描述

输出一个整数,表示最少需要确定的点的个数。

样例1
输入

3

1 4

2 6

5 7
输出

2

解释

至少需要两个点(例如3和5)才能保证每个闭区间内都有至少一个点。

cpp 复制代码
#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和b
	return 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++;//则不会交集,个数加1
			last = a[i].y;//更新当前的右端点
		}
	}
	printf("%d",count);
	
	
	
	return 0;
}
相关推荐
fantasy_arch几秒前
SVT-AV1编码 递归子块划分
算法·av1
jay神4 分钟前
基于深度学习和协同过滤算法的美妆商品推荐系统
人工智能·深度学习·算法·毕业设计·协同过滤算法
不穿格子的程序员7 分钟前
从零开始写算法——图论篇2:课程表 + 实现前缀树(26叉树)
算法·深度优先·图论·dfs·bfs
啊阿狸不会拉杆9 分钟前
《数字信号处理》第5章-数字滤波器的基本结构
python·算法·机器学习·matlab·信号处理·数字信号处理·dsp
AI 菌10 分钟前
视觉令牌压缩:Vision-centric Token Compression in Large Language Model
人工智能·算法·语言模型·llm
Fleshy数模11 分钟前
从原理到实战:逻辑回归,机器学习的“Hello World”
算法·机器学习·逻辑回归
少许极端15 分钟前
算法奇妙屋(二十六)-二叉树的深度搜索问题
算法·二叉树·dfs
2401_8414956416 分钟前
【LeetCode刷题】二叉树的中序遍历
数据结构·python·算法·leetcode··递归·遍历
2301_8174973317 分钟前
C++中的适配器模式实战
开发语言·c++·算法
砚边数影18 分钟前
逻辑回归实战(一):用户流失预测数据集设计,KingbaseES存储标签数据
java·人工智能·算法·机器学习·逻辑回归·线性回归·金仓数据库