摘要:
据说是百度的面试题啊有一个已经排序的数组(升序),数组中可能有正数、负数或0,求数组中元素的绝对值最小的数,要求,不能用顺序比较的方法(复杂度需要小于O(n)),可以使用任何语言实现例如,数组{-20,-13,-4, 6, 77,200} ,绝对值最小的是-4。算法实现的基本思路其实就是个二分查找,使用0作为查找的值。如果没有找到,则也是正数或者负数的零界点。(全是正数或者全是负数的情况除外)。如果是正数,则与左边的负数绝对值比较,如果为负数,则用绝对值与右边的负数比较。实现代码如下,用python完成的 1 def getMinAbsoluteValue(array,min,max,key) 阅读全文