题目地址:
https://leetcode.com/problems/binary-search/
给定一个长
n
n
n的升序数组
A
A
A,返回某个给定数
t
t
t的下标,如果不存在则返回
−
1
-1
−1。
二分。代码如下:
class Solution {
public:
int search(vector<int>& a, int t) {
int l = 0, r = a.size() - 1;
while (l < r) {
int mid = l + (r - l >> 1);
if (a[mid] >= t) r = mid;
else l = mid + 1;
}
return a[l] == t ? l : -1;
}
};
时间复杂度 O ( log n ) O(\log n) O(logn),空间 O ( 1 ) O(1) O(1)。