【LeetCode 539】 Minimum Time Difference
来源:互联网 发布:中国制造2025 知乎 编辑:程序博客网 时间:2024/05/29 07:41
/**********************LeetCode 539 Minimum Time DifferenceGiven a list of 24-hour clock time points in "Hour:Minutes" format, find the minimum minutes difference between any two time points in the list.Example 1:Input: ["23:59","00:00"]Output: 1Note:The number of time points in the given list is at least 2 and won't exceed 20000.The input time is legal and ranges from 00:00 to 23:59.**************************//**********************思想: 1.时间格式为 23:59 所以只有24*60种可能性 2.求最小相差时间,即是求任意两个时间点之间的距离 3.建立一个hash表,hash[i] = true表示i时间点存在列表中,否则不存在列表中 i = hour*60+minute 4.遍历times数组,填充hash表 5.遍历hash表,求两个元素之间最小距离 6.边界处理 end%(24*60)时间复杂度: O(n)空间复杂度 O(n)*****************************///将相应的时间转换为 该时刻在hash表中的下标int stringToIndex(string time){int hour = atoi(time.substr(0, 2).c_str());int minute =atoi( time.substr(3, 2).c_str());return hour * 60 + minute; }int findMinDifference(vector<string> &timePoints){//建立一个hash表,表示时间是否出现在列表中bool timeFlag[24 * 60 + 1];memset(timeFlag, 0, sizeof(timeFlag)); int len = timePoints.size();for (int ii = 0; ii < len; ++ii){ int index = stringToIndex(timePoints[ii]);if (!timeFlag[index])timeFlag[index] = true;elsereturn 0;}int start=0;int end=0;while (!timeFlag[start]){++start;} int minDiff = 65535;while (start<24*60){end = start + 1;while (!timeFlag[end % (24 * 60)]){++end;}minDiff = ((end - start) % (24 * 60)>minDiff ? minDiff : (end - start) % (24 * 60));start = end;} return minDiff;}
0 0
- 【LeetCode 539】 Minimum Time Difference
- leetcode 539. Minimum Time Difference
- Leetcode-539. Minimum Time Difference
- [leetcode] 539. Minimum Time Difference
- [LeetCode]539. Minimum Time Difference
- LeetCode 539. Minimum Time Difference
- leetcode 539. Minimum Time Difference
- LeetCode 539. Minimum Time Difference
- leetcode 539. Minimum Time Difference
- LeetCode:539. Minimum Time Difference
- leetcode 539. Minimum Time Difference
- LeetCode笔记:539. Minimum Time Difference
- [Leetcode] 539. Minimum Time Difference 解题报告
- Minimum Time Difference
- Minimum Time Difference
- 539. Minimum Time Difference
- Minimum Time Difference
- Minimum Time Difference
- 各类硬盘对比
- RTP时间戳
- flume1.7.0-taildirSource 支持多文件监控和断点续传
- CSRF学习笔记之CSRF的攻击与防御以及审计【00x1 】
- linux命令大全
- 【LeetCode 539】 Minimum Time Difference
- Ubuntu下Arduino中Serial port不能识别的问题
- 漫步数理统计八——随机变量(下)
- 我的科研生活2017-3-14
- 马云的故事--思考
- leetcode 146. LRU Cache 460. LFU Cache
- 集群的概念
- HDU 5667 矩阵快速幂 + 费马小定理 + 快速幂
- RPG开发日记