【算法:一个有序数组(从小到大排列),数组中的数据有正有负,-查字典问答网
分类选择

来自刘翀的问题

  【算法:一个有序数组(从小到大排列),数组中的数据有正有负,求这个数组中的最小绝对值一个简单的思路,就是一次性遍历数组,求出数组的元素的绝对值的最小值,这样的时间复杂度为O(n).但】

  算法:一个有序数组(从小到大排列),数组中的数据有正有负,求这个数组中的最小绝对值

  一个简单的思路,就是一次性遍历数组,求出数组的元素的绝对值的最小值,这样的时间复杂度为O(n).但是,这样就浪费了题目的一个条件:数组是已经排好序的.所以,需要对原来的题目进行转换.考虑到数组有序,则元素绝对值的最小值为数组中最大负数的绝对值与最小非负数的绝对值的最小值.于是,题目事实上是去查找原数组中负数集合中的最大值.(为什么就不是非负数集合中的最小值呢?怎么判断出来一定是负数的?)

1回答
2020-10-03 01:25
我要回答
请先登录
柏赟

  二分查找啊.中间的数如果是正数,就往前找,反之往后找.O(logn)

  “题目事实上是去查找原数组中负数集合中的最大值”,因为找到这个最大复数,右边的数自然是最小正数啦

2020-10-03 01:29:19

最新问答

推荐文章

猜你喜欢

附近的人在看

推荐阅读

拓展阅读

  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  •