魔术索引。 在数组A0...n-1中,有所谓的魔术索引,满足条件Ai = i。给定一个有序整数数组,编写一种方法找出魔术索引,若有的话,在数组A中找出一个魔术索引,如果没有,则返回-1。若有多个魔术索引,返回索引值最小的一个。
示例 1:
输入:nums = [0, 2, 3, 4, 5]
输出:0
说明: 0下标的元素为0
示例 1:
输入:nums = [1, 1, 1]
输出:1
func findMagicIndex(nums []int) int {
res := 0
var min = math.MaxInt32
for i := range nums {
if i == nums[i] {
res = i
} else {
continue
}
if res <= min {
min = res
}
}
if min == math.MaxInt32 {
return -1
}
return min
}
func findMagicIndex2(nums []int) int {
for i:=0 ; i< len(nums); i++{
if nums[i] == i{
return i
}else if nums[i] > i{ // 如果nums[i] > i, 说明 i 至少为 nums[i] 时才可能有结果
i = nums[i] - 1
}
}
return -1
}
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。