返回信息流给定一个有序数组n(正负值都有)和一个数a,找到i使||n[i]| - |a||最小
想问一下有没有比遍历数组更高的
这是一条镜像帖。来源:北邮人论坛 / java / #50015同步于 2016/5/4
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖
菜鸟问一道算法题
maoxian
2016/5/4镜像同步8 回复
订阅后,新回复会通过你的通知中心匿名送达。
8 条回复
效率更高那就要分情况讨论了,变复杂了
如果没有时间复杂度要求的话,O(N)已经可以了
【 在 maoxian 的大作中提到: 】
:
: 有没有效率更高的
【 在 dongqing 的大作中提到: 】
: 效率更高那就要分情况讨论了,变复杂了
: 如果没有时间复杂度要求的话,O(N)已经可以了
面试官提示用二分查找,我的思路挺乱的,也没理清楚
给个思路,把这个算式与结果看作y=f(x)
那么,对于连续的函数必然有每个点的斜率的绝对值相等
对于离散的有序数组,可以通过两点斜率的绝对值的改变,定位出目标点的范围。
那么,你可以采用菲波拉希数列或者二分法这种变长步进的思路,得到O(log n)的算法
代码就懒得写了……