diff options
Diffstat (limited to 'works/solutions/cpp/1343.cpp')
-rw-r--r-- | works/solutions/cpp/1343.cpp | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/works/solutions/cpp/1343.cpp b/works/solutions/cpp/1343.cpp new file mode 100644 index 0000000..24bb762 --- /dev/null +++ b/works/solutions/cpp/1343.cpp @@ -0,0 +1,40 @@ +#include <vector> + +using std::vector; + +class Solution +{ +public: + int numOfSubarrays(vector<int> &arr, int k, int threshold) + { + const auto end = arr.cend(); + auto iter = arr.cbegin(); + auto last_iter = arr.cbegin(); + + double sum = 0; + + int result = 0; + + for (int i = 0; i < k; i++) + { + sum += *iter++; + } + + while (iter != end) + { + if (sum / k >= threshold) + { + result++; + } + sum -= *last_iter++; + sum += *iter++; + } + + if (sum / k >= threshold) + { + result++; + } + + return result; + } +}; |