1 .题目描述
2.示例展示
3.思路分析
主要是中间值的比较,目标值大于中间值,改变left,反之,改变right
4.代码实现
int search(int* nums, int numsSize, int target)
{
int left=0,right=numsSize-1;
int mid=0;
int flag=0;
while(left<=right)
{
mid=(left+right)/2;
if(nums[mid]==target)
{
flag=1;
return mid;
}
else if(nums[mid]>target)
{
right=mid-1;
}
else
{
left=mid+1;
}
}
return -1;
}
int search(int* nums, int numsSize, int target)
{
int left=0,right=numsSize-1;
int mid=0;
int flag=0;
while(left<=right)
{
mid=(left+right)/2;
if(nums[mid]==target)
{
flag=1;
return mid;
}
else if(nums[mid]>target)
{
right=mid-1;
}
else
{
left=mid+1;
}
}
return -1;
}
int search(int* nums, int numsSize, int target)
{
int left=0,right=numsSize-1;
int mid=0;
int flag=0;
while(left<=right)
{
mid=(left+right)/2;
if(nums[mid]==target)
{
flag=1;
return mid;
}
else if(nums[mid]>target)
{
right=mid-1;
}
else
{
left=mid+1;
}
}
return -1;
}
int search(int* nums, int numsSize, int target)
{
int left=0,right=numsSize-1;
int mid=0;
int flag=0;
while(left<=right)
{
mid=(left+right)/2;
if(nums[mid]==target)
{
flag=1;
return mid;
}
else if(nums[mid]>target)
{
right=mid-1;
}
else
{
left=mid+1;
}
}
return -1;
}
int search(int* nums, int numsSize, int target)
{
int left=0,right=numsSize-1;
int mid=0;
int flag=0;
while(left<=right)
{
mid=(left+right)/2;
if(nums[mid]==target)
{
flag=1;
return mid;
}
else if(nums[mid]>target)
{
right=mid-1;
}
else
{
left=mid+1;
}
}
return -1;
}
5.复杂度分析
时间复杂度:O(logn)
空间复杂度:O(1)