@@ -73,13 +73,106 @@ Thus, no day is a good day to rob the bank, so return an empty list.</pre>
73
73
### ** Python3**
74
74
75
75
``` python
76
-
76
+ class Solution :
77
+ def goodDaysToRobBank (self , security : List[int ], time : int ) -> List[int ]:
78
+ n = len (security)
79
+ if n <= time * 2 :
80
+ return []
81
+ left, right = [0 ] * n, [0 ] * n
82
+ for i in range (1 , n):
83
+ if security[i] <= security[i - 1 ]:
84
+ left[i] = left[i - 1 ] + 1
85
+ for i in range (n - 2 , - 1 , - 1 ):
86
+ if security[i] <= security[i + 1 ]:
87
+ right[i] = right[i + 1 ] + 1
88
+ return [i for i in range (n) if time <= min (left[i], right[i])]
77
89
```
78
90
79
91
### ** Java**
80
92
81
93
``` java
94
+ class Solution {
95
+ public List<Integer > goodDaysToRobBank (int [] security , int time ) {
96
+ int n = security. length;
97
+ if (n <= time * 2 ) {
98
+ return Collections . emptyList();
99
+ }
100
+ int [] left = new int [n];
101
+ int [] right = new int [n];
102
+ for (int i = 1 ; i < n; ++ i) {
103
+ if (security[i] <= security[i - 1 ]) {
104
+ left[i] = left[i - 1 ] + 1 ;
105
+ }
106
+ }
107
+ for (int i = n - 2 ; i >= 0 ; -- i) {
108
+ if (security[i] <= security[i + 1 ]) {
109
+ right[i] = right[i + 1 ] + 1 ;
110
+ }
111
+ }
112
+ List<Integer > ans = new ArrayList<> ();
113
+ for (int i = 0 ; i < n; ++ i) {
114
+ if (time <= Math . min(left[i], right[i])) {
115
+ ans. add(i);
116
+ }
117
+ }
118
+ return ans;
119
+ }
120
+ }
121
+ ```
122
+
123
+ ### ** C++**
124
+
125
+ ``` cpp
126
+ class Solution {
127
+ public:
128
+ vector<int > goodDaysToRobBank(vector<int >& security, int time) {
129
+ int n = security.size();
130
+ if (n <= time * 2) return {};
131
+ vector<int > left(n);
132
+ vector<int > right(n);
133
+ for (int i = 1; i < n; ++i)
134
+ if (security[ i] <= security[ i - 1] )
135
+ left[ i] = left[ i - 1] + 1;
136
+ for (int i = n - 2; i >= 0; --i)
137
+ if (security[ i] <= security[ i + 1] )
138
+ right[ i] = right[ i + 1] + 1;
139
+ vector<int > ans;
140
+ for (int i = 0; i < n; ++i)
141
+ if (time <= min(left[ i] , right[ i] ))
142
+ ans.push_back(i);
143
+ return ans;
144
+ }
145
+ };
146
+ ```
82
147
148
+ ### **Go**
149
+
150
+ ```go
151
+ func goodDaysToRobBank(security []int, time int) []int {
152
+ n := len(security)
153
+ if n <= time*2 {
154
+ return []int{}
155
+ }
156
+ left := make([]int, n)
157
+ right := make([]int, n)
158
+ for i := 1; i < n; i++ {
159
+ if security[i] <= security[i-1] {
160
+ left[i] = left[i-1] + 1
161
+ }
162
+ }
163
+ for i := n - 2; i >= 0; i-- {
164
+ if security[i] <= security[i+1] {
165
+ right[i] = right[i+1] + 1
166
+ }
167
+ }
168
+ var ans []int
169
+ for i := 0; i < n; i++ {
170
+ if time <= left[i] && time <= right[i] {
171
+ ans = append(ans, i)
172
+ }
173
+ }
174
+ return ans
175
+ }
83
176
```
84
177
85
178
### ** TypeScript**
0 commit comments