import java.util.*;

public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * 如果目标值存在返回下标,否则返回 -1 * @param nums int整型一维数组 * @param target int整型 * @return int整型 */ public int search (int[] nums, int target) { // write code here if (nums.length < 1){ return -1; } int pivot = nums.length / 2; int leftMost = 0; int rightMost = nums.length; while (true){ if (nums[pivot] == target){ int indexToReturn = pivot; for (int i = pivot-1; i >= 0; i--){ if (nums[i] == target){ indexToReturn = i; continue; } return indexToReturn; } return indexToReturn; } if (pivot >= nums.length-1 || pivot <= 0){ break; } if (nums[pivot] > target){ rightMost = pivot; pivot -= (pivot - leftMost + 1) / 2; } if (nums[pivot] < target){ leftMost = pivot; pivot += (rightMost - pivot) / 2; } } return -1; } }