方法思想:根据二分法,设置首指针和尾指针,中间指针mid=L+((R-L)>>1),以及二分法最大遍历次数log2(总个数),来获取你要找的值的位置
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param nums int整型vector
* @param target int整型
* @return int整型
*/
int search(vector<int>& nums, int target) {
int n=nums.size();
int L=0;
int R=n-1;
for(int i=0;i<=log2(n);i++)
{
int mid=L+((R-L)>>1);
if(nums[mid]>target)
{
R=mid;
}
else if(nums[mid]<target)
{
L=mid+1;
}
else {
return mid;
}
}
return -1;
}
};

京公网安备 11010502036488号