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;
}
};
本文详细解析了如何求解给定24小时制时间列表中任意两个时间的最小时间差问题,通过将时间转换为分钟数,进行排序并计算相邻时间差,最终找到最小差值。适用于算法学习和面试准备。
401

被折叠的 条评论
为什么被折叠?



