在Python中查找总和可以被k整除的连续子序列的数量的程序

假设我们有一个数组 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

猜你喜欢