二分法找到目标 左右寻找。直接拿下!!!
class Solution {
public int search(int[] nums, int target) {
//二分法 查找
if(nums==null || nums.length==0){
return 0;
}
return binarySearch(nums,target,0,nums.length-1);
}
public int binarySearch(int[] nums,int target,int left,int right){
int mid = (left+right)/2;
int temp=0;
int count=0;
if(nums[mid]==target){
temp=mid;
while(temp>=left && nums[temp]==target){
count++;
temp--;
}
temp=mid+1;
while(temp<=right && nums[temp]==target){
count++;
temp++;
}
return count;
}
if(nums[mid]<target && right>mid){
return binarySearch(nums,target,mid+1,right);
}
if(nums[mid]>target && mid>left){
return binarySearch(nums,target,left,mid);
}
return 0;
}
}