我有一个大数组,其中值在长子序列中单调上下(无关系)(这样的序列可以是任意数量和任意大的任何大小,当然> 2个术语)。
小规模的例子:
1 2 3 4 5 9 7 4 3 -2 -5 -7 3 5 34 56 67 78 89 90 8 6 2 -4 -5 ......
等等。
我有兴趣找到任何(只是 1 ,而不是全部)结束增加序列的值,以及新的减少序列开始的位置。
这样做的最佳方法是什么?复杂性是什么?
(我的直觉是这可能与二进制搜索类似,所以我猜一个O(logN),但不确定这是否正确)
答案 0 :(得分:0)
你不能在这里应用二进制搜索,因为给定的序列没有排序。 您可以通过搜索下一个元素小于该元素的第一个元素来在o(n)中执行此操作。 如上面的示例9将回答