最强解析面试题:魔术索引
Posted 魏小言
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了最强解析面试题:魔术索引相关的知识,希望对你有一定的参考价值。
最强解析面试题:魔术索引
文章讲解 “ 魔术索引 ” 经典面试题,包含思路及源码,及解惑!
题目
在数组A[0…n-1]中,有所谓的魔术索引,满足条件A[i]=i。给定一个升序数组,元素值各不相同,编写一个方法,判断在数组A中是否存在魔术索引。
请思考一种复杂度优于o(n)的方法。 给定一个int数组A和int n代表数组大小,请返回一个bool,代表是否存在魔术索引。
示例1
[1,2,3,4,5]
返回:false
思路
注意和查找相同数值不同,判定数值区间时,需要等于mid
代码
func main()
fmt.Println("res:", Res())
func Res() bool
var tar = []int1, 2, 3, 4, 5
s := 0
e := len(tar)
for ; s < e;
mid := (s + e) / 2
if tar[mid] == mid
return true
else if tar[mid] > mid
e = mid
else
s = mid
return false
附录
自负和自大真的是搞笑!
以上是关于最强解析面试题:魔术索引的主要内容,如果未能解决你的问题,请参考以下文章