Untitled
unknown
plain_text
10 months ago
1.1 kB
3
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;
}
}
Editor is loading...
Leave a Comment