题解 | #看电影#

看电影

http://www.nowcoder.com/questionTerminal/32a2cfd71b7c438b9c82d865595cd6ef

区间贪心:

  • 每次看完节目,使得剩余时间尽可能的长
  • 选择最早结束的电影来看

题目描述不够清晰或者说有bug

  • 当前时间和开始时间相同的不可以看,必须要当前时间早于开始时间才可以看(可能是考虑换台的时间)
#include<iostream>
#include<algorithm>
using namespace std;
const int maxn=100010;

struct movie{
    int begin;
    int end;
};

bool compare(movie x,movie y){
    return x.end<y.end;
}

movie s[maxn];

int main(){
    int n;
    while(scanf("%d",&n)!=EOF){
        for(int i=0;i<n;i++){
            scanf("%d%d",&s[i].begin,&s[i].end);
        }
        sort(s,s+n,compare);//按照结束时间升序
        int sum=0;
        int cur=-1;//坑
        for(int i=0;i<n;i++){
            if(cur<s[i].begin){//坑
                cur=s[i].end;//更新当前时间
                sum++;
            }
        }
        printf("%d\n",sum);
    }
    return 0;
}
全部评论

相关推荐

09-04 12:26
门头沟学院 Java
点赞 评论 收藏
分享
鼠鼠能上岸吗:进行中是秋招大项目进行中,你还可以选别的岗位;已结束是这个岗位流程结束了;筛选中就是在简历筛选环节没hr捞
投递美团等公司10个岗位
点赞 评论 收藏
分享
牛客34884196...:你期望薪资4-5k,那确实可以重生了,但很难在深圳活下去
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务