2022年11月20日 星期日

[704] Binary Search

奇怪,怎麼可能沒寫過binary search ?!
重點在於要不要加等於XD(苦笑)

int
search(int* nums, int numsSize, int target){
int left=0,right=numsSize-1;
int mid=(left+right)/2;
while (left<=right)
{
mid=(left+right)/2;
if (nums[mid] < target)
left=mid+1;
else if (nums[mid]> target)
right=mid -1;
else
return mid;
}
return -1;
}
[20251011]
這個更.... mid 竟然會算錯, l跟r 也亂亂的,天啊
int search(int* nums, int numsSize, int target) {
int l=0;
int r= numsSize-1;
int mid;
while (l<=r)
{
mid = l+(r-l)/2;
if (nums[mid]==target)
return mid;
if (nums[mid]>target)
r=mid-1;
if (nums[mid]<target)
l=mid+1;
}
return -1;
}




沒有留言:

張貼留言