【发布时间】:2014-11-05 21:22:28
【问题描述】:
我有一个最初按降序排列的数组。 现在我遍历我的数组中的一个随机索引,在那之后我翻转列表,以便列表的其余部分升序。
现在给出了一个数字,需要找到它的索引。 找到给定数字的索引的有效算法是什么?
例如:
初始列表:50 48 21 15 9 8 7 5 3 2 1
在第 9 位翻转后: 50 48 21 15 1 2 3 5 7 8 9
提供的号码: 21
21 指数 : ?
编辑 1: 有趣的是,列表中以 desc 顺序排列的最小值元素总是大于列表中以升序排列的最大值元素,因为它最初是按降序排列。
【问题讨论】:
-
@interjay 是的,我也这么想,但找不到更好的标题,否则标题会变得太模糊
-
翻转后 - 数组未排序。如果你想找到索引最好应该是迭代列表并返回匹配元素的索引。
-
@interjay
Binary Search将不起作用,因为必须对该数组进行排序。这里数组翻转后没有排序。 -
你知道转折点吗?还是您只是翻转后的数组,没有记录翻转的位置?