連結
魔術索引。 在數組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
}
複制