leetcode

Solution to some Leetcode problems written in C++
git clone git://git.dimitrijedobrota.com/leetcode.git
Log | Files | Refs | README | LICENSE

2100.cpp (1090B)


0 class Solution { 1 public: 2 vector<int> goodDaysToRobBank(const vector<int> &security, int time) const { 3 static int up[100001], down[100001]; 4 const int n = size(security); 5 6 if (time == 0) { 7 vector<int> res(n); 8 iota(begin(res), end(res), 0); 9 return res; 10 } 11 12 up[0] = down[n - 1] = 0; 13 for (int i = 0, cnt = 1; i < n - 1; i++) { 14 if (security[i] >= security[i + 1]) 15 cnt++; 16 else 17 cnt = 0; 18 up[i + 1] = cnt; 19 } 20 21 for (int i = n - 1, cnt = 0; i >= 1; i--) { 22 if (security[i] >= security[i - 1]) 23 cnt++; 24 else 25 cnt = 0; 26 down[i - 1] = cnt; 27 } 28 29 vector<int> res; 30 for (int i = time; i < n - time; i++) { 31 if (up[i] < time || down[i] < time) continue; 32 if (security[i] > security[i - 1]) continue; 33 if (security[i] > security[i + 1]) continue; 34 35 res.emplace_back(i); 36 } 37 38 return res; 39 } 40 };