手把手带你撕出正确的二分法 | 二分查找法 | 二分搜索法 | LeetCode:704. 二分查找_哔哩哔哩_bilibili
第一个:超时,原因未知
class Solution {
public:
//代码总体思路
int search(vector<int>& nums, int target) {
int start=0;
int end =nums.size()-1;
int mid=(start+end)/2;
//nums的元素的对应的序号,例如数组里的arr[3]里的3,3等价于start end
while (left<=right)//因为双闭
{
if (target>nums[mid])
start=mid+1;
else if (target<nums[mid])
end=mid-1;
else
return mid;//如果目标值存在返回下标
}
return -1;//否则返回 -1。
}
};
但是当我把mid的定义挪到里头,就不超时了,这是为什么,我还没明白。。。