在Python中查找总和可以被k整除的连续子序列的数量的程序
假设我们有一个数组nums和一个值k。我们必须找到总和可以被k整除的连续子序列的数量。
所以,如果输入像k=3nums=[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