给定具有n个数字的数组,使arr [0]为偶数,而arr [n-1]为奇数,找到索引i,使a [i]为偶数,而a [i + 1]为奇数

时间:2018-09-12 18:30:15

标签: arrays binary-search

假设我有一个具有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;
}

我不确定...

您如何看待? 任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:-1)

for(int i = 0; i < A.size()-1; i++){
    if((A[i]+A[i+1])%2 == 1){
        return i;
    }
}