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