class Solution {
public int search(int[] nums, int target) {
return helper(nums, target) - helper(nums, target - 1);
}
// 寻找第一个大于target的元素下标
public int helper(int[] arr, int target) {
int left = 0;
int right = arr.length;
while (left < right) {
int mid = (right - left) / 2 + left;
if (arr[mid] <= target) {
left = mid + 1;
} else {
right = mid;
}
}
return left;
}
}
共以下 9 个回答
两种方法,暴力搜索和寻找第一个小于target的元素的下标
哥们,你这个答案对于 [1,1,1,1,1] target =1 这个用例能够通过吗?
也就是如果没有存在大于target和小于target的数值存在的话,能通过吗?
二分
二分判断
先二分法找到第一个等于给定值的下标,然后得到个数