哭了只会做一半 我好笨呜呜呜呜
学习一下动态规划 谢谢题解
java:
class Solution {
public List goodDaysToRobBank(int[] security, int time) {
List ans = new ArrayList<>();
int n = security.length;
int[] left = new int[n];
int[] right = new int[n];
for(int i = 1; i < n; i++){
if(security[i] <= security[i - 1]){
left[i] = left[i - 1] + 1;
}
if(security[n - i - 1] <= security[n - i]){
right[n - i - 1] = right[n - i] + 1;
}
}
for(int i = time; i < n - time; i++){
if(left[i] >= time && right[i] >= time){
ans.add(i);
}
}
return ans;
}
}
python3:
class Solution:
def goodDaysToRobBank(self, security: List[int], time: int) -> List[int]:
n = len(security)
left = [0] * n
right = [0] * n
for i in range(1, n):
if security[i] <= security[i - 1]:
left[i] = left[i - 1] + 1
if security[n - i - 1] <= security[n - i]:
right[n - i - 1] = right[n - i] + 1
return [i for i in range(time, n - time) if left[i] >= time and right[i] >= time]



