分析
前缀和
class Solution {
public List<Integer> goodDaysToRobBank(int[] security, int time) {
int n = security.length;
int[] dp1 = new int[n];
int[] dp2 = new int[n];
dp1[0] = 0;
dp2[n-1] = 0;
for (int i = 1; i < n; i++) {
if (security[i] <= security[i-1]) {
dp1[i] = dp1[i-1] + 1;
}
}
for (int i = n -2; i >= 0; i--) {
if (security[i] <= security[i+1]) {
dp2[i] = dp2[i+1] + 1;
}
}
List<Integer> list = new ArrayList<>();
for (int i = 0; i < n; i++) {
if (dp1[i] >= time && dp2[i] >= time) {
list.add(i);
}
}
int[] ans = new int[list.size()];
for (int i = 0; i < list.size(); i++) {
ans[i] = list.get(i);
}
return list;
}
}