一、题目内容
二、题解
解法1:
思路
代码
public class Solution { public int search (int[] nums, int target) { if(nums == null||nums.length==0){ return -1; } if(nums.length == 1 && nums[0]!=target){ return -1; } int left = 0,right = nums.length-1; while(left<right){ int mid = (left+right)/2; if(nums[mid] == target){ return findMinIdx(nums,mid); }else if(nums[mid]>target){ right = mid-1; }else { left = mid+1; } } return findMinIdx(nums,left); } private int findMinIdx(int[] nums,int targetIdx){ if(targetIdx == 0){ return targetIdx; } while(targetIdx>=1&&nums[targetIdx] == nums[targetIdx-1]){ targetIdx--; } return targetIdx; }}