2023年7月8日 星期六

[34] Find First and Last Position of Element in Sorted Array

QQ 我邊看解答邊寫的 QQ


大意是說不遞減的數列,因為可能有重複的數字,給一個target,把它所在的index range 回傳回來;如果找不到就回傳  [-1, -1] , 找到的只有一個的話,兩個index 值會是一樣的。

以後再回來重寫吧嗚嗚嗚

/**
* Note: The returned array must be malloced, assume caller calls free().
*/
int* searchRange(int* nums, int numsSize, int target, int* returnSize){
int *ret = malloc (sizeof (int)*2);
*returnSize = 2;
ret[0]=-1;
ret[1]=-1;
int i=0, j=numsSize-1;
while(i<j)
{
int mid = (j-i)/2 +i ;
if (nums[mid]>= target)
j=mid;
else
i=mid+1;
}

if (numsSize==0 || nums[i]!= target)
return ret;

ret[0]=i;
j=numsSize-1;
while(i<j)
{
int mid = (j-i)/2 +i +1;
if (nums[mid]> target)
j=mid-1;
else
i=mid;
}
ret[1]=j;
return ret;
} 

沒有留言:

張貼留言