数组A中任意两个相邻元素大小相差1,找出某个数在数组A中的位置

题目描述

数组A中任意两个相邻元素大小相差1,现给定这样的数组A和目标整数t,找出t在数组A中的位置。

解题思路

对于目标t,由当前位置a[index]比较开始,,下一个可能位置为index = abs(t-a[index]),因为要找出所有的位置,所以找出第一个下标位置之后,再从这个下标的下一个开始重新查找。

代码实现find_num(int a[],int n, int number){int index;int i = 0;index = abs(number – a[0]);if(n < 0)return -1;while(index < n){if(a[index] == number){printf(“%d “,index);index += abs(number – a[index + 1]);continue;}elseindex += abs(number – a[index]);}return -1;}int main(int argc, char const *argv[]){int a[] = {4,5,6,5,6,7,8,9,10,9};int n = sizeof(a)/sizeof(a[0]);find_num(a,n,5);return 0;}

拿望远镜看别人,拿放大镜看自己。

数组A中任意两个相邻元素大小相差1,找出某个数在数组A中的位置

相关文章:

你感兴趣的文章:

标签云: