class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param nums int整型vector
* @param target int整型
* @return int整型
*/
int search(vector<int>& nums, int target) {
// write code here
if(nums.size()==0){
return -1;//处理数组为空
}
int r=nums.size()-1;
int l=0;
int might;
while(l<r){
might=l+(r-l)/2;//一定程度避免两数太大相加出错
if(nums[might]<target){
l=might+1;//避免出现如l=0,r=1;导致l=might=0,是程序无限循环
}
else{
r=might;
}
}
if(nums[l]==target){
return l;//二分到最后,两下标指向同一位置,若是该数则返回l,r均可
}
else return -1;
}
};