Detect Pattern of Length M Repeated K or More Times LeetCode solution in C++
1class Solution {2public:3bool containsPattern(vector<int> &arr, int m, int k) {4unordered_map<string, vector<int>> ump;5string num = "";6for (int i = 0; i < arr.size(); ++i) num += to_string(arr[i]);7for (int i = 0; i <= num.length() - m; ++i) {8string str = num.substr(i, m);9ump[str].push_back(i);10}11for (auto it = ump.begin(); it != ump.end(); ++it) {12if (it->second.size() >= k) {13bool flag = true;14for (int i = 1; i < it->second.size(); ++i) {15if (it->second[i] - it->second[i - 1] < m) flag = false;16}17if (flag == true) return true;18}19}20return false;21}22};