假设我们有一个数组 nums 和一个值 k。我们必须找到总和可以被 k 整除的连续子序列的数量。
所以,如果输入像 k = 3 nums = [1,2,3,4,1],那么输出将是 4,因为子序列是 [3], [1,2], [1,2,3] ] 和 [2,3,4]。
让我们看看以下实现以获得更好的理解 -
def solve(k, nums): x = [0]*k x[0] = 1 r=s=0 for elem in nums: s = (s+elem) % k r += x[s] x[s] += 1 return r k = 3 nums = [1,2,3,4,1] print(solve(k, nums))
3, [1,2,3,4,1]输出结果
4