1. 不动点 - Fixed Point

【数组】

Problem Link

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

Example:

示例 1:

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

示例 2:

输入:[0,2,5,8,17]
输出:0
示例:
A[0] = 0,因此输出为 0 。

示例 3:

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

提示:

  1. 1 <= A.length < 10^4
  2. -10^9 <= A[i] <= 10^9

Analysis

emmm这还要说啥,看看大佬速度叭

Solution 【考点标签】 ( ms)

执行用时 : 1 ms, 在Fixed Point的Java提交中击败了100.00% 的用户

内存消耗 : 41 MB, 在Fixed Point的Java提交中击败了100.00% 的用户

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
class Solution {
    public int fixedPoint(int[] A) {
        for (int i = 0, len = A.length; i < len; i++) {
            if (A[i] == i) {
                return i;
            }
        }
        return -1;
        
    }
}

复杂度分析

时间:$O(N)$

空间:$O(1)$