class Solution {
public int search(int[] nums, int target) {
if (nums == null || nums.length == 0) return 0;
int l = 0,r = nums.length - 1;
while (l < r) {
int mid = l + r >> 1;
if (nums[mid] >= target) r = mid;
else l = mid + 1;
}
int left = l;
if (nums[l] != target) return 0;
else{
l = 0;
r = nums.length - 1;
while (l < r) {
int mid = l + r + 1 >> 1;
if (nums[mid] <= target) l = mid;
else r = mid - 1;
}
int right = l;
int res = right - left + 1;
return res;
}
}
}
剑指Offer (二分法的运用)数的出现次数,O(logN)
猜你喜欢
转载自blog.csdn.net/Sherlook_Holmes/article/details/121205846
今日推荐
周排行