Minimum Time Difference

Minimum Time Difference

题目描述:

给定一个数组中包含时间的字符串,要求找到字符串中时间差最短的差值。

例子:

具体描述见LeetCode539

解题思路:

首先我们需要将字符串中的时间转化为分钟数;主要用到了substr和stoi函数;然后对转化后的数组进行排序;其中需要注意的地方是我们需要考虑数组中的最小值和最大值之间的差值,因为00:00和23:59之间的差值反而小;所以需要特别注意这两个数之间的差值。

代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class Solution {
public:
int findMinDifference(vector<string>& timePoints) {
vector<int> res;
for (int i = 0; i < timePoints.size(); i++){
int t = stoi(timePoints[i].substr(0, 2)) * 60 + stoi(timePoints[i].substr(3, 2));
res.push_back(t);
}//转化为数字
sort(res.begin(), res.end());
//排序
int mindiff = res[0] + 24 * 60 - res[res.size() - 1];
//头和尾的差值
for (int i = 1; i < res.size(); i++){
int diff = res[i] - res[i - 1];
if (diff < mindiff)
mindiff = diff;
}//找到最小值
return mindiff;
}
};