package com.fishercoder.solutions;

/**
 * 1055. Fixed Point
 *
 * Given an array A of distinct integers sorted in ascending order,
 * return the smallest index i that satisfies A[i] == i.  Return -1 if no such i exists.
 *
 * Example 1:
 * Input: [-10,-5,0,3,7]
 * Output: 3
 * Explanation:
 * For the given array, A[0] = -10, A[1] = -5, A[2] = 0, A[3] = 3, thus the output is 3.
 *
 * Example 2:
 * Input: [0,2,5,8,17]
 * Output: 0
 * Explanation:
 * A[0] = 0, thus the output is 0.
 *
 * Example 3:
 * Input: [-10,-5,3,4,7,9]
 * Output: -1
 * Explanation:
 * There is no such i that A[i] = i, thus the output is -1.
 *
 * Note:
 *
 * 1 <= A.length < 10^4
 * -10^9 <= A[i] <= 10^9
 * */
public class _1055 {
    public static class Solution1 {
        public int fixedPoint(int[] A) {
            for (int i = 0; i < A.length; i++) {
                if (A[i] == i) {
                    return i;
                }
            }
            return -1;
        }
    }
}

@@ -29,16 +29,52 @@
 tions;%0A%0A
+import java.util.stream.IntStream;%0A%0A
 /**%0A * 1
@@ -832,161 +832,89 @@
     
-for (int i = 0; i %3C A.length; i++) %7B%0A                if (A%5Bi%5D == i) %7B%0A                    return i;%0A                %7D%0A            %7D%0A            return 
+return IntStream.range(0, A.length).filter(i -%3E A%5Bi%5D == i).findFirst().orElse(
 -1
+)
 ;%0A  

refactor 1055