查找——相邻元素差的绝对值都是1的数组当中的某个数的索引——多益网络2018校招编程1
2017-09-18 20:01
295 查看
http://blog.csdn.net/u010159842/article/details/46137459
题目是这样的:
有这样一个数组A,大小为n,相邻元素差的绝对值都是1,如A={4,5,6,5,6,7,8,9,10,9}。现在给定数组A和目标整数t,请找到t在数组中的位置。
首先,总结一下,发现自己真实笨得出奇,看到这个题竟然没思路,然后在网上查了一下资料,一看解答,阿西吧,简单的不行。
首先我们来找规律,比如我们查找的元素是int goal=7,我来理一下查找过程,首先定义一个变量来保存int类型的tmp变量备用,第一次tmp=abs(A[0]-goal),tmp=5。然后,接下来是重点了,循环,tmp=abs(A[0+5]-goal),tmp=0,找到目标,返回索引。
程序实现:
程序测试结果:
题目是这样的:
有这样一个数组A,大小为n,相邻元素差的绝对值都是1,如A={4,5,6,5,6,7,8,9,10,9}。现在给定数组A和目标整数t,请找到t在数组中的位置。
首先,总结一下,发现自己真实笨得出奇,看到这个题竟然没思路,然后在网上查了一下资料,一看解答,阿西吧,简单的不行。
首先我们来找规律,比如我们查找的元素是int goal=7,我来理一下查找过程,首先定义一个变量来保存int类型的tmp变量备用,第一次tmp=abs(A[0]-goal),tmp=5。然后,接下来是重点了,循环,tmp=abs(A[0+5]-goal),tmp=0,找到目标,返回索引。
程序实现:
#include <iostream> #include <cmath> using namespace std; int find(int A[], int n, int goal) { if(A == NULL || n <=0) return -1; int i = 0; int tmp; while (i<n) { tmp = abs(goal-A[i]); if (tmp != 0) i = i + tmp;//索引跳转 else return i; } return -1; } int main() { int A[] = { 4 a810 , 5,4,3,4,5, 6, 5, 6, 7, 8, 9, 10, 9 }; int n = 10; int goal = 9; cout << find(A, 14, goal) << endl; return 0; }
程序测试结果:
相关文章推荐
- 查找——相邻元素差的绝对值都是1的数组当中的某个数,百度笔试题
- 相邻元素差的绝对值都是1,在这样的数组中找目标元素
- 如何在一个相邻元素差的绝对都是1的数组中快速查找一个数?
- 相邻元素差的绝对值都是1,在这样的数组中找目标元素
- 有这样一个数组A,大小为n,相邻元素差的绝对值都是1。如:A={4,5,6,5,6,7,8,9,10,9}。现在,给定A和目标整数t,请找到t在A中的位置。
- 有这样一个数组A,大小为n,相邻元素差的绝对值都是1。
- 相邻元素差的绝对值都是1,在这样的数组中找目标元素
- 相邻元素绝对值为1的数组查找
- 相邻元素差的绝对值都是1,在这样的数组中找目标元素
- [百度]数组A中任意两个相邻元素大小相差1,在其中查找某个数
- [经典面试题][百度]数组A中任意两个相邻元素大小相差1,在其中查找某个数。
- 二分法查找数组中的元素并返回其对应的索引
- java数组中根据元素查找位置 索引
- 2018搜狗校招编程--连续多行数字输入,并保存到一个数组中
- 在相邻元素相差1的数组中查找某一特定元素第一次出现的位置
- Linux C/C++编程一站式学习中折半查找(如果待查找的元素在数组中有多个则返回第一个)
- O(n)时间内查找到无序数组当中的第二大元素
- 【携程2018校招】数组中非零元素稳定的放到数组前面,零元素放到数组后面
- (笔试题)数组A中任意两个相邻元素大小相差1,在其中查找某个数。
- 给定整形数组A和目标整数t,A相邻元素差绝对值为1,请找到t在A中的位置