给定一个排序的整数数组(升序)和一个要查找的整数target
,用O(logn)
的时间查找到target第一次出现的下标(从0开始),如果target不存在于数组中,返回-1
。
int left=0;
int right=nums.size();
int mid;
int ans=-1;
while(left<=right){
mid=(left+right)>>1;
if(nums[mid]==target){
ans=mid;
}
if(nums[mid]<target)left=mid+1;
if(nums[mid]>=target)right=mid-1;
}
return ans;
}
这道题被找第一次出现的地方坑了一次,没认真审题以为是找到就可以