面试问题 - 在排序数组 X 中搜索索引 i,使得 X[i] = i
在昨天的采访中,我被问到以下问题:
考虑一个Java或C++数组,它已排序,并且其中没有两个元素是相同的。你怎么能最好地找到一个索引说,这样的元素在那个索引也是。那是。X
i
i
X[i] = i
作为澄清,她还给了我一个例子:
Array X : -3 -1 0 3 5 7
index : 0 1 2 3 4 5
Answer is 3 as X[3] = 3.
我能想到的最好的是线性搜索。面试后,我虽然在这个问题上做了很多,但找不到更好的解决方案。我的论点是:具有必需属性的元素可以在数组中的任何位置。因此,它也可以在数组的最末尾,因此我们需要检查每个元素。
我只是想从这里的社区确认我是对的。请告诉我,我是对的:)