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再加一个结构体,那样的话还要自定义比较函数

  • 相关阅读:
    [转]天龙八部的BillingServer
    [转]天龙八部服务器端Lua脚本系统
    [转]天龙八部服务器端-共享内存的设计
    TCPSocket v1.0 for cocos2d-x下载
    httpclient模拟浏览器getpost
    常用的32中算法
    我在城市快节奏中的慢生活
    分段与分页机制小结
    lua中dofile、loadfile、require区别
    两个链表相交以及第一个公共节点的问题
  • 原文地址:https://www.cnblogs.com/kangdong/p/8733094.html
Copyright © 2011-2022 走看看