539. 最小时间差
给定一个 24 小时制(小时:分钟)的时间列表,找出列表中任意两个时间的最小时间差并已分钟数表示。
解题思路: 按照时间计算就行,常规题。
class Solution {
public:
int f(string a) {
int h = (a[0] - '0') * 10 + a[1] - '0';
int m = (a[3] - '0') * 10 + a[4] - '0';
return h * 60 + m;
}
int findMinDifference(vector<string>& timePoints) {
vector<int> v;
for (auto a : timePoints) {
v.push_back(f(a));
}
sort(v.begin(), v.end());
int res = INT_MAX, n = v.size();
for (int i = 0; i < n; ++i) {
int delta = abs(v[i] - v[(i + n - 1) % n]);
res = min(res, min(24 * 60 - delta, delta));
}
return res;
}
};