Find Good Days to Rob the Bank LeetCode solution in C++

1
class Solution {
2
public:
3
vector<int> goodDaysToRobBank(vector<int> &security, int time) {
4
int n = security.size();
5
vector<int> prefix(n), suffix(n);
6
vector<int> ans;
7

8
prefix[0] = 0;
9
for (int i = 1; i < n; i++) {
10
if (security[i] <= security[i - 1])
11
prefix[i] = prefix[i - 1] + 1;
12
else
13
prefix[i] = 0;
14
}
15

16
suffix[n - 1] = 0;
17
for (int i = (n - 2); i >= 0; i--) {
18
if (security[i] <= security[i + 1])
19
suffix[i] = suffix[i + 1] + 1;
20
else
21
suffix[i] = 0;
22
}
23

24
for (int i = 0; i < n; i++) {
25
if (prefix[i] >= time && suffix[i] >= time) ans.push_back(i);
26
}
27

28
return ans;
29
}
30
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0