【发布时间】:2020-09-04 11:05:44
【问题描述】:
我正在尝试在列表中找到最小的数字。列表中的数字可能是:
1. decrease first and then increase (won't decrease again)
[5,3,2,0,1,6,99]
2. or increase only
[3,4,5,6,7,8]
3. or decrease only
[8,6,4,3,2]
数字大于等于0
我唯一可以使用的是将当前数字与它的前一个数字和下一个数字进行比较。但它太慢了。有没有 O(logN) 甚至更快的方法?
【问题讨论】:
-
您是否保证您列出的订单是唯一可以呈现的订单?如果你不能保证顺序,那么 O(n) 是你能做的最好的。
-
@MarkRansom 是的,我可以保证订单只有三个条件。
标签: algorithm performance divide-and-conquer