最多跳过K个连续元素时数组和不被M整除的最大和求解问题
问题描述
给定参数:N、K、M和A(数组)
- N = 数组元素个数
- K = 计算答案时可跳过/不考虑的最多连续数组元素个数
- |A| = N
你需要从数组的最后一个下标开始遍历,找出通过选取数组元素可以得到的最大和,要求任意时刻的和都不能被M整除。遍历顺序为从最后一个下标到第一个下标,你可以选择将当前元素计入最终答案,或者跳过当前元素。
需满足以下两个条件:
- 当你选择计入当前元素时,到当前位置为止所有被计入元素的总和(包含当前计入的元素)不能被M整除。
- 当你选择跳过当前元素时,需注意单次最多只能连续跳过K个数组元素。
注意:必须严格从最后一个下标开始遍历,跳过任意下标都会计入连续跳过元素的上限K中。
如果不存在从最后一个下标遍历到第一个下标且全程满足上述两个条件的方案,返回*-1*,否则返回可能的最大和。
约束条件
2 <= N <= 10^5 1 <= K <= 10 1 <= M <= 20
示例
示例1
N = 5 K = 1 M = 2 A = [1, 2, 3 ,4, 5] 输出:5 + 4 + 2 = 11
示例2
N = 5 K = 2 M = 2 A = [3, 4, 2, 6, 8] 输出 = -1
示例3
N = 7 K = 2 M = 2 A = [1,4,2,6,3,7,7] 输出:7 + 6 + 2 + 4 = 19
内容的提问来源于stack exchange,提问作者Parth Prratim Chatterjee
相关产品推荐
相关产品推荐

