1. 总结:通过此题学会 双指针的思想,lower_bound, upperbound两种STL查找算法的使用方式
2. 双指针:双指针的精髓在于每次移动哪一个指针,根据题目分析,找出判断规律条件,然后移动某一个指针。二者的初始位置也不一定是头和尾,也有可能都在头,都在尾。
3. lower_bound和upper_bound
首先,最重要的:二者都用在有序数组 有序数组 有序数组 有序数组 有序数组中进行查找,数组不是有序的,查找不出来正确的结果。
其次,总结下来就是:都是找的第一个大于或等于val的地址下标,lower_bound多了等于,但是二者都没有找小于val的功能(幻觉)!
- lower_bound : 返回序列中第一个大于等于value的元素的位置,没有的话返回last位置(不是最后一个元素,此时返回值是越界的)
lower_bound(start,end,value);
//使用方式与upper_bound相同 👇
- upper_bound : 返回序列中第一个大于value的元素的位置
lower_bound(start,end,value);
//使用方式与upper_bound相同 👇