题解 | #二分查找#
二分查找
http://www.nowcoder.com/practice/7bc4a1c7c371425d9faa9d1b511fe193
class Solution {
public:
/**
* 二分查找
* @param n int整型 数组长度
* @param v int整型 查找值
* @param a int整型vector 有序数组
* @return int整型
*/
int upper_bound_(int n, int v, vector<int>& a) {
// write code here
int l = 0, r = n - 1;
while (l < r)
{
int mid = l + r >> 1;
if (a[mid] >= v) r = mid;
else l = mid + 1;
}
if (a[l] >= v) return l + 1;
return n + 1;
}
}; 
