在 Python 中的二进制列表中查找总和为 k 的子列表数量的程序
假设我们有一个包含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
热门推荐
10 祝孙辈生日祝福语简短
11 恋人跨年祝福语大全简短
12 考大学敬酒简短祝福语
13 开工投产大吉祝福语 简短
14 偶然结婚祝福语朋友简短
15 感谢学长学姐祝福语简短
16 戏精的祝福语简短
17 我要结婚祝福语简短
18 婚前女儿生日祝福语简短