开门人和关门人
开门人和关门人
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;
} 算法题解 文章被收录于专栏
不定期更新一些算法题解,有什么问题可以随时留言~
