###### tags: `LeetCode` `Medium` `String` # LeetCode #539 [Minimum Time Difference](https://leetcode.com/problems/minimum-time-difference/) ### (Medium) 給定一個 24 小時制(小時:分鐘 "HH:MM")的時間列表,找出列表中任意兩個時間的最小時間差並以分鐘數表示。 --- 排序整個timePoints, 然後兩兩相比, 最後再比頭尾, 並更新最小分鐘差。 --- ``` class Solution { public: int findMinDifference(vector<string>& timePoints) { int n=timePoints.size(); sort(timePoints.begin(), timePoints.end()); //提前發現有重複的, 不知道會不會比較快 /*timePoints.erase(unique(timePoints.begin(), timePoints.end()), timePoints.end()); if(timePoints.size()!=n)return 0; n = timePoints.size();*/ int ans = INT_MAX; for(int i=1; i<n;i++){ int h = (timePoints[i][0]-timePoints[i-1][0])*10+(timePoints[i][1]-timePoints[i-1][1]); int m = (timePoints[i][3]-timePoints[i-1][3])*10+(timePoints[i][4]-timePoints[i-1][4]); int tmp = h*60+m; ans = min(tmp, ans); } int h = (timePoints[0][0]-timePoints[n-1][0])*10+(timePoints[0][1]-timePoints[n-1][1]); int m = (timePoints[0][3]-timePoints[n-1][3])*10+(timePoints[0][4]-timePoints[n-1][4]); int tmp = h*60+m + 1440; ans = min(tmp, ans); return ans; } }; ```