题解 | #二分查找#
二分查找
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; } };