İçeriğe atla
ΣDSA Patterns
Menü
Dil

Greedy

Rehber 1 / 6 · Yol 1 / 6

Etkileşimli

Zihinsel model

Bu problem için animasyonlu çözüm. Adımları kaydır veya boşlukla duraklat; değişmezi yüksek sesle yeniden anlat.

Adım 1 / 6
2
3
1
1
4

jumps=0 · curEnd=0 · far=0

Jump Game II: [2,3,1,1,4] üzerinde min sıçrama (son ulaşılabilir).

Demo önizleme: Bu çözümler otomatik test paketini geçiyor ama insan tarafından incelenmedi. Trade-off ve yazıları taslak olarak değerlendirin.

Mediumgreedy

Jump Game II

Problem (yeniden ifade)

Son indekse ulaşmak için minimum sıçrama (ulaşılabilir olduğu garanti).

Sezgi

Seviye seviye: mevcut sıçrama aralığında en uzak sonraki sonu izle; i end’e gelince jump++.

Yaklaşımlar

Aralık BFS greedy

Doğrulanmadı
Zaman O(n)Alan O(1)

Fikir. curEnd, far; i==curEnd olunca jumps++, curEnd=far.

Yürüyüş. [2,3,1,1,4] → 2 sıçrama.

Trade-off. Greedy seviyeler vs DP min sıçrama O(n²).

Çözüm
export function jump(nums: number[]): number {
  let jumps = 0, curEnd = 0, far = 0;
  for (let i = 0; i < nums.length - 1; i++) {
    far = Math.max(far, i + nums[i]!);
    if (i === curEnd) {
      jumps++;
      curEnd = far;
    }
  }
  return jumps;
}
export function jump(nums: number[]): number {
  let jumps = 0, curEnd = 0, far = 0;
  for (let i = 0; i < nums.length - 1; i++) {
    far = Math.max(far, i + nums[i]!);
    if (i === curEnd) {
      jumps++;
      curEnd = far;
    }
  }
  return jumps;
}

Şablon bağlantısı

Aralık genişletmeli greedy sıçrama.

Yansıma