"Solundaki sayıların toplamı" ya da "şu ana kadarki en düşük fiyat" gibi bir bilgiye her elemanda ihtiyacın varsa, onu her seferinde baştan hesaplama. Gezerken güncelle: bir önceki değere yeni elemanı ekle.
total = sum(values)left = 0for i, v in enumerate(values):if left == total - left - v:return ileft += vreturn -1
enumerate hem yeri hem değeri birlikte verir. Sağdaki toplamı ayrıca tutmaya gerek yok: hepsinin toplamından solu ve elemanın kendisini çıkarınca sağ kalır. left, karşılaştırmadan sonra büyür.En iyi alım-satım da aynı fikirdir: her gün için "bugüne kadarki en düşük fiyat"ı taşırsan, bugün satmanın kârı tek bir çıkarmadır. İç içe iki döngü yerine tek geçiş.