package com.heu.wsq.leetcode.inoffer;
public class Offer53 {
private int target;
public int search(int[] nums, int target) {
if(nums == null || nums.length == 0){
return 0;
}
this.target = target;
int left = 0;
int right = nums.length - 1;
int count = search(nums, left, right);
return count;
}
public int search(int[] nums, int left, int right){
if(left > right){
return 0;
}
int count = 0;
int mid = (left + right) >> 1;
if(nums[mid] == this.target){
count++;
count += search(nums, left, mid - 1);
count += search(nums, mid + 1, right);
}else if(nums[mid] < this.target){
count += search(nums, mid + 1, right);
}else{
count += search(nums, left, mid - 1);
}
return count;
}
}