统计一个数字在排序数组中出现的次数。
class Solution {
public int search(int[] nums, int target) {
//1、寻找右侧边界
int l = 0,r = nums.length - 1;
while(l <= r){
int m = l + (r - l)/2;
if(nums[m] <= target){
l = m + 1;
}else{
r = m - 1;
}
}
//l-1为目标值
int right = l;
if( (l-1) >= 0 && nums[l-1] != target){
return 0;
}
//2、寻找左侧边界
l = 0;r = nums.length - 1;
while(l <= r){
int m = l + (r - l)/2;
if(nums[m] < target){
l = m + 1;
}else{
r = m - 1;
}
}
int left = r;
return right-left-1;
}
}
执行用时:0 ms, 在所有 Java 提交中击败了100.00%的用户
内存消耗:44.4 MB, 在所有 Java 提交中击败了34.84%的用户
通过测试用例:88 / 88