2025年10月14日 星期二

[540] Single Element in a Sorted Array

啊......我果然是個無法考慮所有case的孩子啊QQ 
int singleNonDuplicate(int* nums, int numsSize) {
int l=0;
int r= numsSize-1;
if (numsSize==1)
return nums[0];
if (nums[0]!= nums[1])
return nums[0];
if (nums[numsSize-1]!= nums[numsSize-2])
return nums[numsSize-1];
int mid;
while (l<r)
{
mid = l+(r-l)/2;
// if (mid ==0 || mid == numsSize-1)
// break;
if ((nums[mid]!=nums[mid-1]) && nums[mid]!=nums[mid+1])
return nums[mid];
if (mid%2 !=0)
{
if (nums[mid]==nums[mid-1])
l=mid;
else if (nums[mid]==nums[mid+1])
r=mid;
}
else
{
if (nums[mid]==nums[mid-1])
r=mid;
else if (nums[mid]==nums[mid+1])
l=mid;
}
}
return -1;
}

沒有留言:

張貼留言