给定一个数组,每个元素都比它前面的元素多一个或少一个。在其中找到一个元素(时间复杂度要小于O(n))。
我有一个解决方案,但我无法正式判断它是否是正确的解决方案:
假设我们要查找n。
- 从给定的索引开始,找到到n的距离;d = |a[0] - n| - 所需元素至少与d个元素分开,并跳过d个元素 - 重复上述操作,直到d = 0
我有一个解决方案,但我无法正式判断它是否是正确的解决方案:
假设我们要查找n。
- 从给定的索引开始,找到到n的距离;d = |a[0] - n| - 所需元素至少与d个元素分开,并跳过d个元素 - 重复上述操作,直到d = 0
[2,3,2,1,2,3,4]
这样的数组。 - Alma Do