Memory Limit Exceeded em Python
Aprendendo Python
def runningSum(self, nums: List[int]) -> List[int]: sumOfNumbers = 0 sum = 0 for i in nums: sum = sum + i sumOfNumbers = nums.append(sum)
Por que esse código dá Memory Limit Exceeded em Python?
Modificar a lista enquanto itera sobre ela, o comando nums.append(sum) altera a lista nums enquanto o for ainda está percorrendo os seus elementos.
Em Python, isso causa um crescimento infinito da lista:
- a cada iteração, um novo valor é adicionado,
- o loop tenta percorrer esse novo valor,
- e o processo nunca termina.
Uso incorreto de append()
A função append() não retorna nada — ela apenas modifica a lista original.
Então, quando você faz:
sumOfNumbers = nums.append(sum)
A variável sumOfNumbers recebe o valor None, e não a lista modificada.
Usar sum como nome de variável
sum é o nome de uma função interna do Python que soma valores de uma lista.
Ao usar sum como nome de variável, você sobrescreve essa função, o que pode gerar erros e confusão no código.