我有一个问题,尝试找出正确的算法来计算一组日期范围。
基本上,我有一个未排序的日期范围列表(包含开始和结束时间的数组),我想合并此列表,以便它不包含重叠时间。
基本上,要合并两个日期范围:
if start1 <= end2 and start2 <= end1 //Indicates overlap
if start2 < start1 //put the smallest time in start1
start1 = start2
endif
if end2 > end1 //put the highest time in end1
end1 = end2
endif
endif
这将合并两个日期时间。
在迭代所有值以使最终列表仅包含没有重叠的值时,我遇到了阻碍。
我的函数式和递归编程有点生疏,需要您的帮助。