算法基础之区间选点

区间选点

  • 核心思想: 贪心

    • 每次只看当前的最优解

      • 将所有区间按右端点排序 从小到大遍历所有区间
      • 为了覆盖更多区间 取右端点作为选点
      • 若两区间互相没有交集 则再取点
    cpp 复制代码
      #include<iostream>
      #include<algorithm>
      
      using namespace std;
      const int N = 100010;
      
      int n;
      struct Range{
          int l,r;
          bool operator< (const Range &W)const{  //重载<
              return r < W.r;
          }
      }range[N];
      
      int main()
      {
          cin>>n;
          for(int i=0;i<n;i++)
          {
              int l,r;
              cin>>l>>r;
              range[i] = {l,r};
              // cin >> range[i].l >> range[i].r; 也可以
          }
          
          sort(range,range+n);
          
          int res = 0,ed = -2e9;  //res为点个数 ed为当前选点的下标
          for(int i=0;i<n;i++)  //遍历所有区间
          {
              if(range[i].l > ed)  //左端点大于上一次取的右端点
              {
                  ed = range[i].r;  //更新右端点
                  res ++;  //个数+1
              }
          }
          
          cout<<res;
      }

相关推荐
一个有毅力的吃货7 分钟前
这个SKILL打通了AI写公众号文章的最后一公里
css·算法
free-elcmacom11 分钟前
C++ 函数占位参数与重载详解:从基础到避坑
java·前端·算法
Frostnova丶14 分钟前
LeetCode 1415. 长度为 n 的开心字符串中字典序第 k 小的字符串
数据结构·算法·leetcode
美好的事情能不能发生在我身上15 分钟前
Leetcode热题100中的:技巧专题
算法·leetcode·职场和发展
荣光属于凯撒17 分钟前
P15755 [JAG 2025 Summer Camp #1] JAG Box
c++·算法·贪心算法
郝学胜-神的一滴25 分钟前
CMake:解锁C++跨平台工程构建的核心密钥
开发语言·c++·职场和发展
AI科技星30 分钟前
基于v≡c空间光速螺旋量子几何归一化统一场论第一性原理的时间势差本源理论
人工智能·线性代数·算法·机器学习·平面
佑白雪乐33 分钟前
C++标准总结+VSCode使用+MinGW
开发语言·c++·vscode
X-⃢_⃢-X34 分钟前
二、索引的数据结构
数据结构·mysql
云泽80834 分钟前
蓝桥杯算法精讲:哈夫曼编码的贪心思想与落地实现
算法·职场和发展·蓝桥杯