首页 文章资讯内容详情

在 Python 中的二进制列表中查找总和为 k 的子列表数量的程序

2026-06-03 1 花语

假设我们有一个包含0或1的二进制列表。我们还有另一个名为k的输入,我们必须找到总和与k相同的子列表的数量。

因此,如果输入类似于nums=[1,0,0,1,1,1,0,1]k=3,那么输出将为8,因为子列表是[1,0,0,1,1],[0,0,1,1,1],[0,0,1,1,1,0],[0,1,1,1],[0,1,1,1,0],[1,1,1],[1,1,1,0][1,1,0,1]。

示例

让我们看看以下实现以获得更好的理解-

def solve(nums, k): sums = {0: 1} r_sum = 0 ans = 0 for x in nums: r_sum += x ans += sums.get(r_sum - k, 0) sums[r_sum] = sums.get(r_sum, 0) + 1 return ans nums = [1, 0, 0, 1, 1, 1, 0, 1] k = 3 print(solve(nums, k))

输入

[1, 0, 0, 1, 1, 1, 0, 1], 3输出结果8