diff options
author | crupest <crupest@outlook.com> | 2020-07-10 23:42:08 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2020-07-10 23:42:08 +0800 |
commit | 03805046190dbe3daf8e92ddd85df7b2d50fd526 (patch) | |
tree | 36e248a71319be2552c2d204cdb5acba8237b17a | |
parent | b1e16853b583151c19390d48ea217797f6e63c25 (diff) | |
download | crupest-03805046190dbe3daf8e92ddd85df7b2d50fd526.tar.gz crupest-03805046190dbe3daf8e92ddd85df7b2d50fd526.tar.bz2 crupest-03805046190dbe3daf8e92ddd85df7b2d50fd526.zip |
import(solutions): Add problem 1343.
-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; + } +}; |