zoukankan      html  css  js  c++  java
  • 区间问题

    通过区间问题,更加深刻的了解了pair的用法,用sort函数对pair进行排序的时候,默认的是根据pair的first的进行升序,也可以自定义比较函数,如下:

     1 #include<iostream>
     2 #include<algorithm>
     3 using namespace std;
     4 int cmp(const pair<int,int>&a, const pair<int,int>&b)
     5 {
     6     return a.second > b.second;
     7 }
     8 int main()
     9 {
    10     int n = 5, s[] = { 10,2,4,6,8 }, t[] = { 3,5,7,9,10 };
    11     pair <int, int> itv[100];
    12     for (int i = 0; i < n; i++)
    13     {
    14         itv[i].first = t[i];
    15         itv[i].second = s[i];
    16     }
    17     sort(itv, itv + n,cmp);
    18     for (int i = 0; i < 5; i++)
    19         cout << itv[i].first << " " << itv[i].second << endl;
    20     return 0;
    21 }

    对于区间问题的解法,果然大佬的方法比我们的简单和代码质量高了很多

     1 #include<iostream>
     2 #include<algorithm>
     3 using namespace std;
     4 int main()
     5 {
     6     int n = 5, s[] = { 10,2,4,6,8 }, t[] = { 3,5,7,9,10 };
     7     pair <int, int> itv[100];
     8     for (int i = 0; i < n; i++)
     9     {
    10         itv[i].first = t[i];
    11         itv[i].second = s[i];
    12     }
    13     sort(itv, itv + n);
    14     int ans = 0, k = 0;//k为最后所选工作结束时间
    15     for (int i = 0; i < n; i++)
    16     {
    17         if (k < itv[i].second)
    18         {
    19             ans++;
    20             k = itv[i].first;
    21         }
    22     }
    23     cout << ans << endl;
    24     return 0;
    25 }

    //感觉最好解决这个问题的做法就是使用了pair,不像我解决时用得时queue再加一个结构体,那样的话还要自定义比较函数

  • 相关阅读:
    html和css的重难点知识
    走过的K8S坑
    K8S的安装
    java 工程编码格式由GBK转化成utf-8 (转载)
    spring mvc 后端获得前端传递过来的参数的方法
    表格组件---bootstrapTable
    Spring mvc +ajax 发送邮件
    通过Httpclient工具类,实现接口请求
    spring mvc框架+ ajax实现 文件上传
    element-ui中表格自定义排序
  • 原文地址:https://www.cnblogs.com/kangdong/p/8733094.html
Copyright © 2011-2022 走看看