开门人和关门人

开门人和关门人

http://www.nowcoder.com/questionTerminal/a4b37b53a44d454ab0834e1517983215

思路

其实本质上就是对签到记录按照签到时间或者签离时间进行排序,第一个签到的开门,最后一个签离的关门,但是如果只是找到最值的话,没必要进行排序,用两个变量记录一下就好了。

#include<iostream>
#include<vector>

using namespace std;

int main(){
    int n;
    while(cin >> n){
        string id, signIn, signOut;
        string openId, closeId;
        string signInTime = "24:00:00", signOutTime = "00:00:00";
        for(int i = 0; i < n; i ++){
            cin >> id >> signIn >> signOut;
            if(signIn < signInTime){
                signInTime = signIn; openId = id;
            }
            if(signOut > signOutTime){
                signOutTime = signOut; closeId = id;
            }
        }
        cout << openId << " " << closeId << endl;
    }
    return 0;
}
算法题解 文章被收录于专栏

不定期更新一些算法题解,有什么问题可以随时留言~

全部评论
大佬牛逼
点赞 回复 分享
发布于 2022-03-09 17:03

相关推荐

08-19 19:57
石河子大学 C++
企鹅百度字节的孝子:为啥本科只有两年啊
校招求职吐槽
点赞 评论 收藏
分享
评论
23
收藏
分享

创作者周榜

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