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 begin = 0;
        int end = nums.size();
        int mid = (begin + end) >> 1;
        while (begin < end) {
            if (target < nums[mid]) {
                end = mid;
            } else if (target > nums[mid]) {
                begin = mid + 1;
            } else {
                return mid;
            }
            mid = (begin + end) >> 1;
        }
        return -1;
    }
};