文章目錄
- 題目
- 題解
題目
3202. 找出有效子序列的最大長度(2)
給你一個整數數組 nums 和一個 正 整數 k 。
nums 的一個 子序列 sub 的長度為 x ,如果其滿足以下條件,則稱其為 有效子序列 :
(sub[0] + sub[1]) % k == (sub[1] + sub[2]) % k == … == (sub[x - 2] + sub[x - 1]) % k
返回 nums 的 最長有效子序列 的長度。
示例 1:
輸入:nums = [1,2,3,4,5], k = 2
輸出:5
解釋:
最長有效子序列是 [1, 2, 3, 4, 5] 。
示例 2:
輸入:nums = [1,4,2,3,1,4], k = 3
輸出:4
解釋:
最長有效子序列是 [1, 4, 1, 4] 。
題解
class Solution:def maximumLength(self, nums: List[int], k: int) -> int:f = [[0] * k for _ in range(k)]for x in nums:x %= kfor y, fxy in enumerate(f[x]):f[y][x] = fxy + 1return max(map(max, f))