【leetcode】3202. 找出有效子序列的最大长度(2)
文章目录
- 题目
- 题解
题目
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))