1
class Solution {
public:
bool containsPattern(vector<int>& arr, int m, int k) {
int cnt = 0;
string arr2;
for(auto& s:arr)
arr2+=to_string(s);
for(int i=0; i<arr2.size()-1; i++){
string pattern;
pattern = arr2.substr(i,m);
cout<<pattern<<endl;
for(int j=i;j<arr2.size(); j=j+m){
string tmp;
tmp = arr2.substr(j, m);
cout<<"tmp"<<tmp<<endl;
if(tmp.compare(pattern)==0){
cnt++;
if(cnt==k) return true;
}else{
break;
}
}
cnt=0;
}
return false;
}
};
2
class Solution {
public:
bool patterns(vector<int>& arr, int offset, int pattern_length, int k){
for(int i=1; i<k; i++){
for(int j=0; j<pattern_length; j++){
if(arr[offset+i*pattern_length+j]!=arr[offset+j]) return false;
}
}
return true;
}
bool containsPattern(vector<int>& arr, int m, int k) {
int n=arr.size();
if(n<m*k) return false;
for(int i=0; i+m*k<=n; i++){
if(patterns(arr, i, m, k)) return true;
}
return false;
}
};