我有一个向量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它?
谢谢你!