LeetCode 704二分查找
int search(int* nums, int numsSize, int target){
int left = 0;
int right = numsSize - 1;
while (left <= right) {
int mid = left + ((right - left) / 2);
if (nums[mid] == target) {
return mid;
} else if (nums[mid] < target) {
left = mid + 1;
} else if(nums[mid] > target) {
right = mid - 1;
}
}
return -1;
}
技巧分析:
1)二分查找的基本代码框架套用
2)mid 计算的方式采用 left + ((right - left) / 2) ,可以防止溢出
3)left和right的偏移,不是赋值为mid,需要偏移