En az kaç atlayışta sona varılır? Yine kutu seçmezsin; bu kez katmanlar hâlinde düşünürsün. Bir atlayışla erişebildiğin kutuların hepsini gez ve onlardan erişilebilen en uzak noktayı bul: bu, iki atlayışla erişilen katmanın sınırıdır. Sınıra geldiğinde bir atlayış say.
jumps = edge = farthest = 0for i in range(len(values) - 1):farthest = max(farthest, i + values[i])if i == edge:jumps += 1edge = farthestreturn jumps
edge şu anki atlayış sayısıyla varılabilen son kutudur. Ona varana kadar "bir sonraki atlayış beni en fazla nereye götürür" bilgisini toplarsın; hangi kutudan atlayacağına hiç karar vermezsin. Döngü son kutuya girmez: oradan atlamaya gerek yoktur.Çember üzerindeki benzin istasyonlarında başka bir açgözlü fikir çalışır: bir başlangıçtan yola çıkıp depon bir noktada eksiye düşüyorsa, o aralıktaki hiçbir istasyon iyi bir başlangıç değildir (hepsine en az sıfır yakıtla varmıştın, yine de yetmedi). Bir sonraki istasyondan baştan başlarsın ve hiçbir başlangıcı iki kez denemezsin.