假设我有一个具有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;
}
我不确定...
您如何看待? 任何帮助将不胜感激。
答案 0 :(得分:-1)
for(int i = 0; i < A.size()-1; i++){
if((A[i]+A[i+1])%2 == 1){
return i;
}
}