Arrays 给定n个数的数组,arr[0]为偶数,arr[n-1]为奇数,查找索引i,使a[i]为偶数,a[i+1]为奇数
假设我有一个有n个数字的数组A,所以这个数组的第一个元素是偶数,最后一个元素是奇数-我想写一个函数来查找索引I,这样A[I]是偶数,A[I+1]是奇数。 函数是返回找到的索引;如果没有任何这样的索引,则返回-1 该解决方案的时间复杂度必须为logn 我一直在考虑在这种情况下使用二进制搜索 以下是我迄今为止所做的工作:Arrays 给定n个数的数组,arr[0]为偶数,arr[n-1]为奇数,查找索引i,使a[i]为偶数,a[i+1]为奇数,arrays,binary-search,Arrays,Binary Search,假设我有一个有n个数字的数组A,所以这个数组的第一个元素是偶数,最后一个元素是奇数-我想写一个函数来查找索引I,这样A[I]是偶数,A[I+1]是奇数。 函数是返回找到的索引;如果没有任何这样的索引,则返回-1 该解决方案的时间复杂度必须为logn 我一直在考虑在这种情况下使用二进制搜索 以下是我迄今为止所做的工作: int findIndex(int A[], int n) { int left=0,right=n-1,mid,i; while(left<=right)
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;
}
我不确定
你觉得怎么样?
任何帮助都是非常值得赞赏的。第一个值是偶数,因此这将是一个更合理的起点。a[1+1]是指[i+1]吗?
for(int i = 0; i < A.size()-1; i++){
if((A[i]+A[i+1])%2 == 1){
return i;
}
}