Python程式檢查長度為m的模式是否在陣列中重複出現K次或更多次
假設我們有一個包含正值的陣列 nums,我們需要找到一個長度為 m 的模式,該模式重複出現 k 次或 k 次以上。這裡,模式是指一個不重疊的子陣列(連續的),它包含一個或多個值,並且重複多次。模式由其長度和重複次數定義。我們需要檢查是否存在長度為 m 的模式,該模式重複出現 k 次或更多次。
因此,如果輸入類似於 nums = [3,5,1,4,3,1,4,3,1,4,3,9,6,1],m = 3,k = 2,則輸出將為 True,因為存在模式 [1,4,3],它出現了 3 次。
為了解決這個問題,我們將遵循以下步驟:
對於 i 從 0 到 nums 大小 - 1,執行以下操作:
sub1 := 從索引 i 到 (i+m*k) - 1 的 nums 的子陣列
sub2 := 從索引 i 到 (i+m-1) 的 nums 的 k 個連續子陣列
如果 sub1 與 sub2 相同,則
返回 True
返回 False
示例(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))
輸入
[3,5,1,4,3,1,4,3,1,4,3,9,6,1], 3, 2
輸出
True
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP