leetcode_1064 不动点

124 阅读1分钟

要求

给定已经按 升序 排列、由不同整数组成的数组 arr,返回满足 arr[i] == i 的最小索引 i。如果不存在这样的 i,返回 -1。

示例 1:

输入:arr = [-10,-5,0,3,7]
输出:3
解释:对于给定的数组,arr[0] = -10,arr[1] = -5,arr[2] = 0,arr[3] = 3,因此输出为 3 。

示例 2:

输入:arr = [0,2,5,8,17]
输出:0
解释:arr[0] = 0,因此输出为 0 。

示例 3:

输入:arr = [-10,-5,3,4,7,9]
输出:-1
解释:不存在这样的 i 满足 arr[i] = i,因此输出为 -1

核心代码

class Solution:
    def fixedPoint(self, arr: List[int]) -> int:
        for i,x in enumerate(arr):
            if i == x:
                return i
        return -1

image.png

解题思路:循环遍历,遇到index和值相同的,输出index即可。