在 Python 中确定我可以对子序列求和多少次以获得给定 k 数的方法

way to determine how many times i can sum a subsequence to obtain a given k number in Python

提问人:neoSnakex34 提问时间:10/22/2021 更新时间:10/22/2021 访问量:64

问:

我确实有一个 int 数字列表;我正在尝试优化我的代码并找到一种方法让它表现得更好。

我有一串数字,我在整数列表中转换该字符串,然后循环迭代列表 2 以找到总和等于小计 k 的子序列(这次是 9),但它不会通过我给出的所有超时测试,因为 f 效率低下。 有人建议我使用字典,但来自c,我不太倾向于使用它们。

def ex1(int_seq, subtotal):


lista = convert(int_seq)
cont = 0 
lun = len(lista)

for i in range(lun):
    for j in range(i+1,lun):
        somma = sum(lista[i:j])
        if somma == subtotal:
            cont += 1
            
        elif somma < subtotal:
            somma += sum(lista[i:j])
            
        elif somma > subtotal:
            break
python 列表 字典 切片

评论

1赞 Thierry Lathuille 10/22/2021
您应该提供示例数据和预期输出,并澄清一个非常重要的点:所有整数都是正数吗?在这种情况下,问题变得简单得多。
0赞 neoSnakex34 10/22/2021
数据如下: int_seq = '3,0,4,0,3,1,0,1,0,1,0,0,5,0,4,2' --> 转换为 int 小计列表 = 9 其预期输出为 7 也是,是的,所有正整数

答: 暂无答案