Me:
class Solution {
public:
int search(vector<int>& nums, int target) {
if(nums.size()==0)
return -1;
int size=nums.size();
int start=0;
int end=size-1;
while(end>=start)
{
///元素个数为奇数个
if(size%2==1)
{
int mid=(end-start)>>1+start;
if(target==nums[mid])
{return mid;}
else if(target>nums[mid])
start=mid;
else if(target<nums[mid])
end=mid;
}
///元素个数为偶数个
if(size%2==0)
{
int mid=(end-1-start)>>+start;
if(target==nums[mid])
{return mid;}
else if(target>nums[mid])
start=mid+1;
else if(target<nums[mid])
end=mid;
}
}
return -1;
}
};
正确答案:
class Solution {
public:
int search(vector<int>& nums, int target) {
if(nums.size()==0)
return -1;
int size=nums.size();
int start=0;
int end=size-1;
while(start<=end)
{
///(start+end)/2 表示取商
int mid=(start+end)/2;
if(nums[mid]==target)
return mid;
else if(target>nums[mid])
start=mid+1;
else if(target<nums[mid])
end=mid-1;
}
return -1;
}
};