0%

代码随想录第一天

数组-二分查找

题目链接

自己的想法和题解差不多,但是实现比较繁琐(不是很好看,并且有点绕),看了题解简直醍醐灌顶!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
int search(int* nums, int numsSize, int target){
int low = 0;
int high = numsSize-1;
while(low <= high){
int mid = (high+low)/2;
if(nums[mid] == target)
return mid;
else if(nums[mid] < target)
low = mid + 1;
else
high = mid - 1;
}
return -1;
}

如果是C++采用容器的话,只需要修改如下一行

1
int high = nums.size() - 1;