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;
    }
};