题解 | #活动安排#

活动安排

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;
}
全部评论

相关推荐

11-24 00:11
已编辑
广东工业大学 算法工程师
避雷深圳&nbsp;&nbsp;yidao,试用期&nbsp;6&nbsp;个月。好嘛,试用期还没结束,就直接告诉你尽快找下一家吧,我谢谢您嘞
牛客75408465号:笑死,直属领导和 hr 口径都没统一,各自说了一些离谱的被裁理由,你们能不能认真一点呀,哈哈哈哈哈😅😅😅
点赞 评论 收藏
分享
牛客963010790号:为什么还要收藏
点赞 评论 收藏
分享
一颗宏心:华为HR晚上过了十二点后还给我法消息。
点赞 评论 收藏
分享
评论
1
收藏
分享
牛客网
牛客企业服务