Untitled
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