1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
// @Title: 适合打劫银行的日子 (Find Good Days to Rob the Bank)
// @Author: 15816537946@163.com
// @Date: 2022-03-06 23:42:40
// @Runtime: 92 ms
// @Memory: 9.8 MB
func goodDaysToRobBank(security []int, time int) (ans []int) {
    n := len(security)
    left := make([]int, n)
    right := make([]int, n)
    for 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 i := time; i < n-time; i++ {
        if left[i] >= time && right[i] >= time {
            ans = append(ans, i)
        }
    }
    return
}