一些知识点
一.
lower_bound 与upper_bound
lower_bound算法返回一个非递减序列[first, last)中的第一个大于等于值val的位置。
upper_bound算法返回一个非减序列[first,last)中的第一个大于值val的位置。
eg:
int a[20]={1,2,2,3,4,4,4,4,5,6,7,9,9,10}
lower_bound(a,a+20,1)-a=0;
lower_bound(a,a+20,4)-a=4;
upper_bound(a,a+20,1)-a=1;
upper_bound(a,a+20,4)-a=8;
查找一个值的位置非常方便的方法,算法时间复杂度因为是二分,所以是O(logN),但需要是非减序列