algorithm/problem/leetcode/3202
3202. 找出有效子序列的最大长度 II(1974)
给你一个整数数组 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] 。
提示:
2 <= nums.length <= 10^3
1 <= nums[i] <= 10^7
1 <= k <= 10^3
值域dp
1234567891011121314151617class Sol ...
algorithm/problem/leetcode/2501
2501. 数组中最长的方波(1480)
给你一个整数数组 nums 。如果 nums 的子序列满足下述条件,则认为该子序列是一个 方波 :
子序列的长度至少为 2 ,并且
将子序列从小到大排序 之后 ,除第一个元素外,每个元素都是前一个元素的 平方 。
返回 nums 中 最长方波 的长度,如果不存在 方波 则返回 -1 。
子序列 也是一个数组,可以由另一个数组删除一些或不删除元素且不改变剩余元素的顺序得到。
示例 1 :
1234567输入:nums = [4,3,6,16,8,2]输出:3解释:选出子序列 [4,16,2] 。排序后,得到 [2,4,16] 。- 4 = 2 * 2.- 16 = 4 * 4.因此,[4,16,2] 是一个方波.可以证明长度为 4 的子序列都不是方波。
示例 2 :
123输入:nums = [2,3,5,6,7]输出:-1解释:nums 不存在方波,所以返回 -1 。
提示:
2 <= nums.length <= 10^5
2 <= nums[i] <= 10^5
12345678910111213141516 ...