假设我有一个带有n个数字的数组A,所以这个数组的第一个元素是偶数,最后一个是奇数 - 我想编写一个找到索引i的函数,这样A [i]是偶数和A [ i + 1]很奇怪。该函数是返回找到的索引;如果没有任何这样的索引,则返回-1。
该解决方案的时间复杂度必须是log(n)。
在这种情况下,我一直在考虑使用二进制搜索。
这是我到目前为止所做的:
int findIndex(int A[], int n)
{
int left=0,right=n-1,mid,i;
while(left<=right)
{
mid=(left+right)\2;
if (A[mid]%2==0 && A[mid+1]%2!=0)
return mid;
else if (A[mid]%2!=0)
right=mid-1;
else
left=mid+1;
}
return -1;
}
我不确定...
你怎么看待这件事?任何帮助将非常感激。
for(int i = 0; i < A.size()-1; i++){
if((A[i]+A[i+1])%2 == 1){
return i;
}
}