是否有任何算法可以找出一天中所有丢失的时段。
鉴于选择了四个时隙。
e.g。预期投入:08:00-1259,13:45-17:15,14:15-19:00,20:00-23:33
我想根据选择的以及以下条件找出所有缺少的时段。
预期产出:13:00-13:44,19:01-19:59
即使有一些不符合上述标准的类似算法,也请随意尝试。
更新
我认为我的审判效率不高。
我尝试省略所有“:”并从0到2359循环并检查每分钟是否在四个选定时隙的范围内。一旦我发现了一个超出任何选定时间段的分钟。该分钟将被记录为缺失时段的开始时间。然后,当找到在这四个时隙内的下一分钟时。我将用1减去那一分钟并将其记录为缺少时间段的结束时间。
e.g。当1300,1300的计数器被视为缺失时段的开始时间,当计数器位于1345时。我将减去一分钟并将结束时间标记为1344.
答案 0 :(得分:2)
答案 1 :(得分:2)
效率取决于您的数据的可用形式。如果数据存储在数组中,我可以想到以下方式:按开始时间排序,偶数索引为开始,奇数索引为停止时间。
start End
[0]0100 [1]0500
[2]0200 [3]0300 //case of slot totally covered by any previous slot
[4]0400 [5]0900 //case of slot partially covered by any previous slot
[6]1200 [7]1500 //case of slot never covered
*** Notation [x]YYYY : x is array index and YYYY is time
1. MAX = element[0]
2. Loop for all index i
3. ----If element[i] > MAX
4. --------If i is odd, MAX=element[i]
5. --------Else MAX to element[i] is missing slot