题解 | #活动安排#

活动安排

https://www.nowcoder.com/practice/16d971e9e42e4f3b9b1e2b8794796a43

说是贪心,我更愿称其为动态规划吧

#include <algorithm>
#include<iostream>
#include <utility>
#include <vector>

using namespace std;

bool compare(pair<int, int> a, pair<int, int> b){
    return a.second < b.second;
}

int GreedForCounter(vector<pair<int, int>>& Act){
    int result = 1, temp = Act[0].second;
    for(int j = 1; j < Act.size(); j++){
        // 只要后面的开始时间段比现在的结束时间大,就可计算,且因为排序了,所以优先选择了最小结束时间的段
        if(temp <= Act[j].first){
            result++;
            // 动态更新
            temp = Act[j].second;
        }
    }
    return result;
}

int main(){
    int OpTimes = 0;
    vector<pair<int, int>> Activity;
    cin >> OpTimes;
    for(int i = 0; i < OpTimes; i++){
        pair<int, int> temp = {0,0};
        cin >> temp.first >> temp.second;
        Activity.push_back(temp);
    }
    // 排序,以简化后面的活动数量计算
    sort(&Activity[0], &Activity[OpTimes], compare);
    int counter = GreedForCounter(Activity);
    cout << counter;
    return 0;
}
全部评论

相关推荐

03-15 12:48
门头沟学院 Java
牛牛要早起:这个一般就跟你说有高薪,然后叫你买车,之后血亏
点赞 评论 收藏
分享
下北泽:都是校友,还是同届,我就说直白点,不委婉了,我相信你应该也不是个玻璃心,首先你觉得一个双非的绩点写简历上有用吗?班长职务有用吗?ccf有用吗?企业会关心你高数满分与否吗?第二,第一个项目实在太烂,一眼就能看出是外卖,还是毫无包装的外卖,使用JWT来鉴权,把热点数据放进Redis这两个点居然还能写进简历里,说难听点这两个东西都是学个几十分钟,调用个API就能完成的事情,在双非一本的条件下,这种项目你觉得能拿出手吗,第二个项目你写的东西和你的求职方向有任何的匹配吗?第三,计设那一块毫无价值,如果想突出自己会前端,直接写入专业技能不行吗,最后,专业技能里像深入理解JVM底层原理这种你觉得这句话你自己真的能匹配吗?都是校友加上同届,我措辞直接,但希望能点出你的问题,想进大厂还得继续沉淀项目和学习
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务