给定数组A[n],其中 A[i+1] = A[i]+1 OR A[i]-1,和数字k,请用最有效的方式在数组A中查找k。
Given an array A[n] such that A[i+1] = A[i]+1 OR A[i]-1, and a number k, can you determine in most efficient way whether k is present in A[n] or not?
对A[0],如果它不等于k,求出他和k相差的绝对值diff,考查0+diff处的值。如果不等于k,重复以上步骤。直到找到k,或者遍历完数组。
bool Find_elem(int a[],int length,int expectedNum)
{
int i = 0;
while (i < length)
{
if (a[i] == expectedNum)
{
return true;
}
else
{
int diff = abs(expectedNum - a[i]);
i = i+diff;
}
}
return false;
}