https://leetcode.com/problems/detect-pattern-of-length-m-repeated-k-or-more-times/description/ Easy

Условие

Дан массив целых arr и два целых числа m и k. Нужно вернуть true, если в массиве существует такая подпоследовательность длины m, которая повторяется подряд не менее k раз, иначе вернуть false.

Решение

class Solution {
    fun containsPattern(arr: IntArray, m: Int, k: Int): Boolean {
        val n = arr.size
        for (i in 0..n - k * m) {
            var ok = true
            for (j in 0 until m) {
                for (t in 1 until k) {
                    if (arr[i + j] != arr[i + t * m + j]) {
                        ok = false
                        break
                    }
                }
                if (!ok) break
            }
            if (ok) return true
        }
        return false
    }
}