如何在由升序排列的数组和降序排列的数组组成的数组中找到最大的数字
How to find the largest number in an array made by a ascendingly sorted array and a descendingly sorted array
对于像[1, 2, 4, 6, 8, 7, 5]
这样的数组,我们如何有效地找到其中最大的数字?
我们知道数组的第一部分是 1, 2, 4, 6,
是升序排列的,第二部分是 8, 7, 5
是降序排列的数组。
简单的解决方案是遍历数组,但鉴于数组由两个排序的数组组成,我认为搜索可以通过某种二进制搜索变体来完成,以实现 o(logn)
运行时复杂度.但是我似乎想不出解决办法。
你求的相当于求一个数组的"peak"。 Here is logarithmic time 解决问题
对于像[1, 2, 4, 6, 8, 7, 5]
这样的数组,我们如何有效地找到其中最大的数字?
我们知道数组的第一部分是 1, 2, 4, 6,
是升序排列的,第二部分是 8, 7, 5
是降序排列的数组。
简单的解决方案是遍历数组,但鉴于数组由两个排序的数组组成,我认为搜索可以通过某种二进制搜索变体来完成,以实现 o(logn)
运行时复杂度.但是我似乎想不出解决办法。
你求的相当于求一个数组的"peak"。 Here is logarithmic time 解决问题