【问题标题】:How to find the largest number in an array made by a ascendingly sorted array and a descendingly sorted array如何在由升序数组和降序数组组成的数组中找到最大数
【发布时间】:2020-04-08 04:48:32
【问题描述】:

对于像[1, 2, 4, 6, 8, 7, 5] 这样的数组,我们如何有效地找到其中的最大数? 我们知道数组的第一部分是1, 2, 4, 6,,它是升序排列的,第二部分是8, 7, 5,它是一个降序排列的数组。

简单的解决方案是遍历数组,但鉴于数组由两个排序数组组成,我想搜索可以通过某种二进制搜索变体来完成,以实现o(logn) 运行时复杂度。但是我似乎无法想出解决方案。

【问题讨论】:

  • 您不能对未排序的数据使用二分搜索
  • @sahasrara62 你不能,但你仍然可以使用分而治之的方法,这可能是 OP 所指的。在这种情况下,解决方案实际上是对二分搜索稍作修改的版本。
  • @MitchelPaulin 这可能是合并排序,他试图以更少的复杂性实现此类数据
  • @sahasrara62 "有效的方法:分而治之可用于在 O(Logn) 时间内找到一个峰值。这个想法是基于二分搜索技术来检查中间元素是否是峰值元素与否。”,您可能需要阅读 asnwer 中的文章

标签: algorithm binary-search


【解决方案1】:

您所要求的相当于找到数组的“峰值”。 Here is logarithmic time问题解决方法

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-16
    • 2019-09-08
    • 2021-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多