1.针对有序数组
2.时间复杂度 O(logn)
3.写代码时需注意的细节
int left = 0, right = nums.size()-1;
while(left<=right){ //注意是<= , 不是<
int mid = left + (right-left)/2; //若直接(left+right)/2,有可能会int越界
if(nums[mid]==target) return mid;
else if(nums[mid]>target){ // 这里>还是>=,要根据是否有重复元素和题目要求来决定
right = mid-1;
}else{
left = mid + 1;
}
}
return left;
本文介绍如何使用二分查找算法在已排序的数组中寻找目标值,探讨时间复杂度为O(logn),并重点讲解代码编写中需要注意的边界条件和元素比较策略。
4977

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



