重點在於要不要加等於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;
}
[20260913] 更新
先看一次再清掉重寫果然寫的比較快XD 而等號還是一樣漏掉了QQ
int search(int* nums, int numsSize, int target) {
int l=0;
int r= numsSize -1;
while (l<=r){
int mid = l+(r-l)/2;
if (nums[mid] == target)
return mid;
else if (nums[mid] < target)
l=mid+1;
else //if (nums[mid] > target)
r=mid-1;
}
return -1;
}
沒有留言:
張貼留言