Back to Month
EASY 04 Sep 2026 View on LeetCode

3903. Smallest Stable Index I

</> Solution

class Solution {
    public int firstStableIndex(int[] nums, int k) {
        int n = nums.length;
        int[] prefixMax = new int[n];
        prefixMax[0] = nums[0];
        for (int i = 1; i < n; i++) {
            prefixMax[i] = Math.max(prefixMax[i-1], nums[i]);
        }
        int[] suffixMin = new int[n];
        suffixMin[n-1] = nums[n-1];
        for (int i = n-2; i >= 0; i--) {
            suffixMin[i] = Math.min(suffixMin[i+1], nums[i]);
        }
        for (int i = 0; i < n; i++) {
            int instability = prefixMax[i] - suffixMin[i];
            if (instability <= k) {
                return i;
            }
        }
        return -1;
    }
}

TIME COMPLEXITY

O(n)

SPACE COMPLEXITY

O(n)

TOPICS

Array Prefix Maximum Suffix Minimum