小编R K*_*kar的帖子

在向量<向量<int>>中二分查找向量<int>

我有一个向量events,它由事件向量组成,例如:

events = [[1,3,2],[2,4,3],[4,5,2],[10,20,8]]
Run Code Online (Sandbox Code Playgroud)

其中events[i]是格式[startTime_i, endTime_i, value_i](含)。所有事件都按这样的方式排序,即jth 事件出现在ith 之后,if startTime_j > startTime_i

由于事件已排序,我想使用二分搜索 ( lower_bound()) 来找出当前事件之后我可以参加的下一个非重叠事件。

有朋友建议使用:

vector<int> v={events[i][1]+1,INT_MIN,INT_MIN};
auto nextOne=lower_bound(begin(events),end(events),v);
Run Code Online (Sandbox Code Playgroud)

我不遵循将第二个和第三个值设置为INT_MIN上面的直觉。有人可以解释一下吗?如果我必须获得一个upper_bound(),我是否必须使用INT_MAX它?

谢谢你!

c++ algorithm binary-search lower-bound upperbound

5
推荐指数
1
解决办法
147
查看次数

标签 统计

algorithm ×1

binary-search ×1

c++ ×1

lower-bound ×1

upperbound ×1