2100.适合打劫银行的日子
2100.适合打劫银行的日子
题解
简单题
第 i 天前和后都分别至少有 time 天。left[i] >= time && right[i] >= time
第 i 天前连续 time 天警卫数目都是非递增的。security[i] <= security[i-1]
第 i 天后连续 time 天警卫数目都是非递减的。security[i] <= security[i+1]
代码
package main
func goodDaysToRobBank(security []int, time int) (ans []int) {
left := make([]int, len(security))
right := make([]int, len(security))
for i := 1; i < len(security); i++ {
if security[i] <= security[i-1] {
left[i] = left[i-1] + 1
}
}
for i := len(security) - 1 - 1; i >= 0; i-- {
if security[i] <= security[i+1] {
right[i] = right[i+1] + 1
}
}
for i := time; i <= len(security)-1-time; i++ {
if left[i] >= time && right[i] >= time {
ans = append(ans, i)
}
}
return
}