algorithm - 如何在由升序数组和降序数组组成的数组中找到最大数
问题描述
对于像这样的数组[1, 2, 4, 6, 8, 7, 5]
,我们如何有效地找到其中的最大数?我们知道数组的第一部分1, 2, 4, 6,
是升序排序的,第二部分是8, 7, 5
降序排序的数组。
简单的解决方案是遍历数组,但鉴于数组由两个排序数组组成,我会想象搜索可以通过某种二进制搜索变体来完成,以实现o(logn)
运行时复杂性。但是我似乎无法提出解决方案。
解决方案
你所要求的相当于找到一个数组的“峰值”。这是问题的对数时间解决方案
推荐阅读
- c++ - C++ 中使用说明符 extern 声明的标识符的链接
- r - 修复与在 R 中创建开始日期和结束日期之间的日期序列相关的错误
- python - pandas:如何 groupby / pivot 保留 NaN?将 float 转换为 str 然后再转换回 float 可以,但看起来很复杂
- r - R - 通过字符调用 xts
- c# - Xamarin 表单上的 Mobile Offline Sync 数据库
- python - Python Intellisense VSCode 错误的自动完成导入和 PyLint 错误的导入错误警告
- java - 性能升级
- python - 导入多个csv时如何有条件地添加一列
- scala - 使用嵌套列将 csv 读入 Dataframe
- arrays - 为什么我的推送方法在使用 Ionic 时不起作用?