Untitled

 avatar
unknown
plain_text
19 days ago
1.1 kB
1
Indexable
import java.util.ArrayList;
import java.util.List;

class Solution {
    public List<Integer> goodIndices(int[] nums, int k) {
        int n = nums.length();
        List<Integer> result = new ArrayList<>();
        
        // Arrays to track non-increasing prefix and non-decreasing suffix streaks
        int[] prefix = new int[n];
        int[] suffix = new int[n];
        
        // Compute non-increasing prefix array
        for (int i = 1; i < n; i++) {
            if (nums[i] <= nums[i - 1]) {
                prefix[i] = prefix[i - 1] + 1;
            }
        }
        
        // Compute non-decreasing suffix array
        for (int i = n - 2; i >= 0; i--) {
            if (nums[i] <= nums[i + 1]) {
                suffix[i] = suffix[i + 1] + 1;
            }
        }
        
        // Identify good indices
        for (int i = k; i < n - k; i++) {
            if (prefix[i - 1] >= k - 1 && suffix[i + 1] >= k - 1) {
                result.add(i);
            }
        }
        
        return result;
    }
}
Leave a Comment