classSolution{ publicbooleancontainsPattern(int[] arr, int m, int k){ //边界判断 if(arr.length < m || m<= 0){ returnfalse; } for(int i = 0; i + m -1 < arr.length; i++){ //定义重复次数count int count = 1; //记录找到数组的最后角标 int index = i + m -1;
for(int j = index + 1 ; j+ m -1 <arr.length; j++){ boolean b = true; //如何快速判断m个数组是相同的模式 for(int x = 0; x < m; x++){ if(arr[i+x] != arr[j+x]){ b = false; } } if(b){ count++; //更新找到相同模板的数组的最后一位角标 index = j + m -1; }else{ //证明不连续了 break; }