相邻元素差的绝对值都是1,在这样的数组中找目标元素
来源:互联网 发布:怎么联系网络服务商 编辑:程序博客网 时间:2024/05/01 21:14
有这样一个数组A,大小为n,相邻元素差的绝对值都是1。如:A={4,5,6,5,6,7,8,9,10,9}。现在,给定A和目标整数t,请找到t在A中的位置。除了依次遍历,还有更好的方法么?
这道题目的解法非常有趣。
数组第一个数为array[0], 要找的数为y,设t = abs(y - array[0])。由于每个相邻的数字之差的绝对值为1。故第t个位置之前的数肯定都比y小。因此直接定位到array[t],重新计算t,t = abs(y – array[t]),再重复上述步骤即可。这种算法主要利用了当前位置的数与查找数的差来实现跨越式搜索。算法效率要比遍历数组的算法要高一些,并且易于实现。
int FindNumberInArray(int arr[], int n , int find_number) { int next_arrive_index = abs(find_number - arr[0]); while (next_arrive_index < n) { if (arr[next_arrive_index] == find_number) return next_arrive_index; next_arrive_index += abs(find_number - arr[next_arrive_index]); } return -1; }
0 0
- 相邻元素差的绝对值都是1,在这样的数组中找目标元素
- 相邻元素差的绝对值都是1,在这样的数组中找目标元素
- 相邻元素差的绝对值都是1,在这样的数组中找目标元素
- 查找——相邻元素差的绝对值都是1的数组当中的某个数,百度笔试题
- 有这样一个数组A,大小为n,相邻元素差的绝对值都是1。如:A={4,5,6,5,6,7,8,9,10,9}。现在,给定A和目标整数t,请找到t在A中的位置。
- 如何在一个相邻元素差的绝对都是1的数组中快速查找一个数?
- 查找——相邻元素差的绝对值都是1的数组当中的某个数的索引——多益网络2018校招编程1
- 数组A中任意两个相邻元素大小相差1,现给定这样的数组A和目标整数t,找出t在数组A中的位置。
- 相邻元素绝对值为1的数组查找
- 给定整形数组A和目标整数t,A相邻元素差绝对值为1,请找到t在A中的位置
- 给定整形数组A和目标整数t,A相邻元素差绝对值为1,请找到t在A中的位置
- 给定整形数组A和目标整数t,A相邻元素差绝对值为1,请找到t在A中的位置
- A的大小为n,其中的每相邻的两个元素之间差的绝对值为1
- 求数组中绝对值最小的元素
- 给定两个数组,交换它们的元素,使得两数组元素之和的差绝对值最小
- 在相邻元素相差1的数组中查找某一特定元素第一次出现的位置(非遍历)
- 在相邻元素相差1的数组中查找某一特定元素第一次出现的位置(非遍历)
- 在相邻元素相差1的数组中查找某一特定元素第一次出现的位置(非遍历)
- Intel Code Challenge Final Round C 大模拟
- python 根据网址获取股票
- SpringMVC - 方法中的各种参数绑定方式
- UTL_RAW.CAST_TO_RAW解决不同字符集的数据库之间的相互访问
- ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot exe
- 相邻元素差的绝对值都是1,在这样的数组中找目标元素
- 包含继承的初始化顺序总结
- MySQL/Mybatis多个AND和OR混用注意事项
- android studio点击运行按钮出现:Unable to locate adb
- ORACLE 12C R2 RAC搭建
- Javascript(三)Javascript基础(函数与数组)
- 从走上C++开发之后的感受
- 15个魔术方法的总结
- 折线分割平面