一个简简单单的二分查找,竟然花了我半个小时才把它修改通过,我真服了!没通过的点在于没考虑到当数组只有一个元素时怎么解决;以及求数组长度c++用的是sizeof,千万记得数组下标,否则一不小心就可能写错!
代码:
class Solution {
public:
int search(vector<int>& nums, int target) {
int left,right,mid;
left=0;
right=nums.size()-1;
mid=0;
while(left<=right)
{
mid=(left+right)/2;
if(nums[mid]<target)
left=mid+1;
if(nums[mid]>target)
right=mid-1;
if(nums[mid]==target)
return mid;
}
return -1;
}
};