示例 1:
输入: nums = [5,7,7,8,8,10], target = 8
输出: 2
示例 2:
输入: nums = [5,7,7,8,8,10], target = 6
输出: 0
排序数组查找,首先想到二分法
class Solution {
public int search(int[] nums, int target) {
//右边界
int i = 0, j = nums.length - 1;
while(i <= j) {
int mid = (i + j) / 2;
if(nums[mid] <= target) i = mid + 1;
else j = mid - 1;
}
int right = i;
// 确认是否存在
if(j >= 0 && nums[j] != target) return 0;
//左边界
i = 0; j = nums.length - 1;
while(i <= j) {
int mid = (i + j) / 2;
if(nums[mid] < target) i = mid + 1;
else j = mid - 1;
}
int left = j;
return right - left - 1;
}
}