这是另一个面试问题
如果前一个元素为x+1
,则数组包含下一个元素可以是x-1
或x
的元素。
Prev element = x
Next element = x+1/ x-1
示例:{2, 3, 4, 3, 2, 1, 0, -1, 0, 1, 2, 3, 2, 1}
如果我需要搜索0什么是最佳算法我们可以选择?
如果我对它进行排序,那么它将是O(nlogn),我可以在O(n)中遍历数组,所以O(n)仍然更好
创建二进制搜索树将再次为O(n),并且在BST中搜索为O(log),因此仍然是O(n)。
它是一个随机数组,下一个元素是+1或-1不会导致任何搜索模式。 如果你们可以想到任何可以在这里使用的搜索模式来执行更好的搜索,请告诉我。
答案 0 :(得分:3)
显而易见的事情是:
您可以跳过多个元素,因为两个相邻值之间的绝对差值始终为1.
因此,考虑到问题中的数组,您可以执行以下操作: