Arrays 包含给定查询点的间隔数
我知道存在类似的问题。我的问题也一样,我有N个区间(有些可能重叠,有些甚至相同)。然后给出Q点查询,我需要告诉有多少间隔包含这个点 我试图通过对端点数组进行排序,然后按照回答中提到的+1,-1技巧计算重叠间隔的数量来开发我的算法。但是在执行二进制搜索之后,我应该做什么呢?因为前缀和数组的对应索引并不总是答案Arrays 包含给定查询点的间隔数,arrays,algorithm,sorting,intervals,Arrays,Algorithm,Sorting,Intervals,我知道存在类似的问题。我的问题也一样,我有N个区间(有些可能重叠,有些甚至相同)。然后给出Q点查询,我需要告诉有多少间隔包含这个点 我试图通过对端点数组进行排序,然后按照回答中提到的+1,-1技巧计算重叠间隔的数量来开发我的算法。但是在执行二进制搜索之后,我应该做什么呢?因为前缀和数组的对应索引并不总是答案 e.g. Intervals are : [1,4] [5,7] [6,10] [7,13] sorted end point array : [1,4,5,6,7,7,10,13] +1
e.g.
Intervals are : [1,4] [5,7] [6,10] [7,13]
sorted end point array : [1,4,5,6,7,7,10,13]
+1/-1 array : [1,-1,1,1,1,-1,-1,-1]
prefix sum array : [1,0,1,2,3,2,1,0]
Query : 10
my algorithm gives 1 (corresponding prefix array)
but actual ans should be 2.
我应该如何修正我的算法 您链接的问题没有好的答案,因此: 第一:
points = [1,5,6,7,8,11,14]
sums = [1,0,1,1,-1,-1,-1]
accumulated = [1,1,2,3,2,1,0]
然后对于查询,如果query
points = [1,5,6,7,8,11,14]
sums = [1,0,1,1,-1,-1,-1]
accumulated = [1,1,2,3,2,1,0]