剑指 Offer 53 - I. 在排序数组中查找数字 I

思路
二分法查找最右值(可能有多个,因此找最右边的)
然后查找target和target-1,返回的最右值差就是target的个数
代码
public int search(int[] nums, int target) {
return helper(nums,target)-helper(nums,target-1);
}
int helper(int[] nums, int target) {
int i=0,j=nums.length-1;
while(i<=j){
int m=i+(j-i)/2;
if(nums[m]<=target)i=m+1;
else j=m-1;
}
return j;
}
本文介绍了如何使用二分查找法来确定一个给定数字在已排序数组中出现的次数,通过比较目标数及其前一个数的最右边界之差实现。核心算法包括`helper`函数的递归应用和`search`函数的调用。
263

被折叠的 条评论
为什么被折叠?



