Как уменьшить объём используемой памяти в проге?
Есть вот такой код:
a = int(input())
spis = [1]
while len(spis) < a:
b = a - len(spis)
prom = spis[:b]
for i in prom:
spis.append(i*2)
if len(spis) >= a:
break
prom = []
print(max(spis[:a]))
Он ищет максимальное число в списке длиной a, но не проходит тесты по объёму памяти, как уменьшить объём используемой памяти?
Ответы (2 шт):
Автор решения: Эникейщик
→ Ссылка
При этом алгоритме список можно даже не формировать, а максимум не искать. Его можно вычислить: он равен 2**int(math.log2(a)).