思路:由于一天最多就是分钟,所以可以将字符时间统计转换成整型数组,排个序(),然后遍历一遍数组,取相邻之间差最小的那个()。
值得注意的是最后还需要将第1个时间()和最后一个时间比较,更新最小值。
cpp:
class Solution {
public:
int findMinDifference(vector<string>& timePoints) {
int ans(1439);
// cout<<timePoints.size()<<endl;
vector<int> time_points;
for (string timePoint:timePoints){
int num = atoi((timePoint.substr(0,2)).c_str())*60 + atoi((timePoint.substr(3,2)).c_str());
time_points.push_back(num);
}
sort(time_points.begin(),time_points.end(),less<int>());
// for (int item:time_points){
// cout<<item<<" ";
// }
for (vector<int>::size_type i=0; i<time_points.size()-1; i++){
if ((time_points[i+1]-time_points[i])<ans){
ans = time_points[i+1]-time_points[i];
}
}
if ((1440+time_points[0]-time_points[time_points.size()-1])<ans){
ans = 1440+time_points[0]-time_points[time_points.size()-1];
}
return ans;
}
};