前言:由于时间有限,刷代码随想录就不再像剑指offer的几篇博客那样把题解写的那么详细了。这里仅写几个注意点,详细题解看卡神的即可。
二分查找
题目 简单
注意:
- 区间的处理
- 找到后立刻返回(做的时候忘记了,导致死循环超时)
class Solution {
public int search(int[] nums, int target) {
// 避免当 target 小于nums[0] nums[nums.length - 1]时多次循环运算
if (target < nums[0] || target > nums[nums.length - 1]) {
return -1;
}
int left = 0, right = nums.length - 1;
while (left <= right) {
int mid = left + ((right - left) >> 1);
if (nums[mid] == target)
return mid;
else if (nums[mid] < target)
left = mid + 1;
else if (nums[mid] > target)
right = mid - 1;
}
return -1;
}
}
标签:target,nums,int,代码,随想录,mid,length,数组 From: https://www.cnblogs.com/CWZhou/p/16918190.html