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

Tek Boyutlu DP

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
0
1
2
3

dp[0]=1 · dp[1]=1

n=3 merdiven, her seferinde 1 veya 2. dp[i] = i. basamağa varış yolu sayısı.

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

Climbing Stairs

Problem (yeniden ifade)

1 veya 2 basamak çıkabilirsin. n basamağın tepesine kaç farklı yolla ulaşılır?

Sezgi

ways(n) = ways(n-1) + ways(n-2). Kaydıran değişkenlerle Fibonacci.

Yaklaşımlar

1B DP

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

Fikir. dp[i] = dp[i-1] + dp[i-2]; yalnızca önceki iki değeri tut.

Adım adım. n=3 → 3 yol: 1+1+1, 1+2, 2+1.

Ödünleşimler. Kapalı form mümkün ama DP mülakatta net.

Çözüm
export function climbStairs(n: number): number {
  if (n <= 2) return n;
  let a = 1, b = 2;
  for (let i = 3; i <= n; i++) {
    const c = a + b;
    a = b;
    b = c;
  }
  return b;
}
export function climbStairs(n: number): number {
  if (n <= 2) return n;
  let a = 1, b = 2;
  for (let i = 3; i <= n; i++) {
    const c = a + b;
    a = b;
    b = c;
  }
  return b;
}

Şablon bağlantısı

Tek boyutlu DP doğrusal yineleme.

Yansıma