import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param nums int整型一维数组 
     * @param target int整型 
     * @return int整型
     */
    public int search (int[] nums, int target) {
        // write code here
        int length = nums.length; //数组长度
        if(length == 0){  //如果数组长度为0,则没有目标值
            return -1;
        }
        int left = 0;  //数组最小值下标
        int right = length-1;  //数组最大值下标
        int mid = 0;  //数组中值下标
        while (left <= right){  //循环,二分遍历数组,直到最小值大于最大值,没有找到目标值
            mid = (left + right)/2;  //获取中值下标
            if(nums[mid] == target){  //将目标值与中值比较,如果相等,则返回下标索引
                return mid;
            }else if(nums[mid] > target){  //中值大于目标值,目标值只可能再左边数组
                right = mid-1;
            }else {  //中值小于目标值,目标值只可能在右边数组
                left = mid+1;
            }
        }
        return -1;
    }
}