golang力扣leetcode 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 }