Giả sử ta có mảng nums giá trị dương, tìm mẫu (pattern) độ dài m lặp lại k lần hoặc hơn. Mẫu là mảng con không chồng chéo (consecutive) lặp lại nhiều lần. Kiểm tra có tồn tại mẫu độ dài m lặp lại ≥ k lần hay không.
Ví dụ: nums = [3,5,1,4,3,1,4,3,1,4,3,9,6,1], m = 3, k = 2, kết quả True vì mẫu [1,4,3] xuất hiện 3 lần.
Giải thuật
- For
itừ 0 đếnlen(nums)-1:sub1 := nums[i : i+m*k]sub2 := nums[i : i+m] * k- Nếu
sub1 == sub2: trả vềTrue
- Trả về
False
Ví dụ (Python)
def solve(nums, m, k):
for i in range(len(nums)):
sub1 = nums[i:i+m*k]
sub2 = nums[i:i+m] * k
if sub1 == sub2:
return True
return False
nums = [3,5,1,4,3,1,4,3,1,4,3,9,6,1]
m = 3
k = 2
print(solve(nums, m, k))
Input
[3,5,1,4,3,1,4,3,1,4,3,9,6,1], 3, 2
Output
True