双百通过
代码如下:
class Solution {
public List<Integer> goodDaysToRobBank(int[] security, int time) {
int len = security.length;
// 包括当前这个数
int[] increase = new int[len];
int[] decrease = new int[len];
increase[0] = 1;
decrease[0] = 0; // 注意decrease的初值为0,表示不包含自身,表示之前有多少个比自己大的
for(int i=1;i<len;i++){
if(security[i]>=security[i-1]){
increase[i] = increase[i-1]+1;
}else{
increase[i] = 1;
}
if(security[i]<=security[i-1]){
decrease[i] = decrease[i-1]+1;
}else{
decrease[i] = 0;
}
}
List<Integer> res = new ArrayList<>();
for(int i=0;i<len;i++){
//System.out.println(decrease[i]);
boolean flag_1 = false;
boolean flag_2 = false;
boolean flag_3 = false;
if(i>=time && (i+time)<len){
flag_1 = true;
}
if(decrease[i]>=time){
flag_2 = true;
}
if(flag_1){
if(increase[i+time]-increase[i]>=time){
flag_3 = true;
}
}
if(flag_1&&flag_2&&flag_3){
res.add(i);
}
}
return res;
}
}