我最近遇到了很多问题,其中涉及时间间隔作为一种投入。有些时间间隔是重叠的。根据这一点,您必须对输入执行优化、最大化或最小化操作。我不能解决这些问题。事实上,我甚至无法开始思考这些问题。
下面是一个示例:
让我们说,你是一个资源持有者。这样的资源可以有无限的供应。
有些人希望在特定的时间间隔内使用该资源。行政长官:下午四时至八时
可能有一个重叠的间隔。例:下午五时至七时,下午三时至六时等。
根据这些间隔以及它们的重叠性质,您必须确定这些资源需要有多少不同的实例。
例如。输入:
8 am - 9 am
8:30 am to 9:15 am
9.30
所以我创建了一个叫做isDateOverlapping的函数。它接受(所有类型的LocalDate):
开始日期1
结束日期1
开始日期2
结束日期2
这个函数的作用是告诉我两个日期周期是否重叠。
例如,如果我有一个句点来自2019-06-15 to 2019-06-18,另一个句点来自2019-06-15 to 2019-06-12。它将返回true,因为两个日期期间重叠。
然而,我的函数似乎并不总是返回正确的答案。你能帮帮我吗。
public boolean isDateOverlapping(LocalDate start1, LocalDate end1, Lo
如果我有3个或更多数据帧列表。每一个都有区间,然后我想找出这些区间之间是否有交集。如果它们相交,我们需要删除交叉点。例如
d1<-cbind(st=c(1,4,6),ed=c(7,8,10)); d2<-cbind(st=c(4,8,17),ed=c(7,12,20)); d3<-cbind(st=c(1,8,25),ed=c(3,13,30))
l<-list(d1,d2,d3); l
为了便于可视化,我绘制了它们,黑色间隔来自d1,蓝色d2和红色d3。其思想是删除相交区域,例如d1中的间隔1和d2中的1以及d3相交中的1。我希望结果是
d2; st ed
这段代码返回重叠坐标。例如:对于10,30,40,70,80,100的输入,答案应该是: 20,30,40,50,80,90有没有办法在低于二次时间复杂度的情况下解决这个问题?
谢谢,
public static Set<OverlapCoord> getOverlap(List<Interval> intervalList) {
if (intervalList == null) {
throw new NullPointerException("Input list cannot be null.");
}
你能否找到两个时间间隔数组是否重叠,以一种优化的方式?假设输入数组A包含10个元素,每个元素都有一个开始日期和结束日期,类似地,输入数组B包含4个元素,每个元素都有一个开始数据和结束数据。现在找出A和B是否重叠?
示例1:
输入:
A={[1,5],[7,10],[11,15]}; //Array A contains 3elements, and each element have start and end time.
B={[6,10],[1,5]};//Array B contains 2elements, and each element have start and end tim
间隔由开始和结束定义。
给定范围内的一组可能重叠的间隔( 0-999 ),则构建一个数据结构,以支持以最佳时间复杂度进行的范围查询。
。
重叠(开始,结束)=与开始、结束重叠的所有间隔的集合
在(开始,结束)=位于开始、结束内的所有间隔的集合
哪里,
Intervals I1[start1, end1], I2[start2, end2] are said to overlap with each other iff start1<end2 && start2<end1
Interval I1[start1, end1] is said to be wit