数组-二分查找
题目链接
自己的想法和题解差不多,但是实现比较繁琐(不是很好看,并且有点绕),看了题解简直醍醐灌顶!
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;
|