Dinamik Programlama Soruları
Memoization, tabulation, optimal substructure. Fibonacci, knapsack, LCS.
Climbing Stairs
n basamaklı bir merdiven var. Her adımda 1 veya 2 basamak çıkabilirsin. Kaç farklı yol var?
beginnerdef stair_climb_steps(...)Coin Change
Verilen coin listesi ile amount kadar para üret. En az kaç coin gerekir? Olası değilse -1.
intermediatedef coin_change(...)0/1 Knapsack
Her item'ın weight ve value'su var. Kapasite W. Maksimum value elde et (her item en fazla 1 kez).
intermediatedef knapsack(...)Longest Common Subsequence
İki string'in en uzun ortak alt dizisinin uzunluğu. LCS — klasik 2D DP.
advanceddef lcs(...)Maximum Subarray (Kadane)
Bir dizide en büyük toplam alt diziyi bul. Kadane's algorithm: O(n) — şu ana kadarki max'i tut.
beginnerdef max_subarray(...)Word Break
String s, wordDict'teki kelimelerle oluşturulabilir mi? Her kelime en az 1 kez, sırasıyla.
intermediatedef word_break(...)Edit Distance
word1'i word2'ye çevirmek için minimum işlem. İşlemler: insert, delete, replace (her biri 1).
advanceddef edit_distance(...)Unique Paths
m×n grid'de (0,0)'dan (m-1,n-1)'e sadece sağ/aşağı. Kaç farklı yol var?
beginnerdef unique_paths(...)House Robber
Bir dizi ev var. Yan yana iki ev soyamazsın (alarm bağlı). Maksimum para. Maks 2 durum: soy (i) veya soyma (i-1).
beginnerdef rob(...)Decode Ways
Sayı string'ini decode et. A=1, B=2, ..., Z=26. Kaç farklı decode yolu var?
intermediatedef num_decodings(...)Partition Equal Subset Sum
Dizi iki alt kümeye bölünebilir mi, eşit toplam? Subset sum problem. Toplam tek ise False.
intermediatedef can_partition(...)Longest Palindromic Subsequence
Bir string'in en uzun palindromik alt-dizisinin (subsequence) uzunluğunu bul. Karakterler arası karakter atlanabilir, sıra korunmalı. Örnek: 'bbbab' → 4 ('bbbb').
intermediatedef longest_palindromic_subsequence(...)Longest Palindromic Substring
Bir string içindeki en uzun palindromik alt-string'i (substring) bul. Örnek: 'babad' → 'bab' (veya 'aba', uzunluk 3).
intermediatedef longest_palindromic_substring(...)Matrix Chain Multiplication
Bir matris zincirinin çarpımı için minimum skaler çarpma sayısını bul. Matrisler soldan sağa çarpılır. Örnek: p = [1, 2, 3, 4] (3 matris: 1x2, 2x3, 3x4) → 18.
advanceddef matrix_chain_order(...)Minimum Path Sum
Sol-üst köşeden sağ-alt köşeye, sadece sağa/aşağı hareketle minimum toplam yol bul. Örnek: [[1,3,1],[1,5,1],[4,2,1]] → 7 (1→3→1→1→1).
intermediatedef min_path_sum(...)Distinct Subsequences
String s, string t'nin kaç farklı alt-dizisini (subsequence) içeriyor? Örnek: s='rabbbit', t='rabbit' → 3.
advanceddef num_distinct(...)Interleaving String
s3, s1 ve s2'nin bir interleaving'i mi? Karakter sırası korunmalı. Örnek: s1='aabcc', s2='dbbca', s3='aadbbcbcac' → True.
advanceddef is_interleave(...)Burst Balloons
n balon, her patlatmada balonun sol ve sağındaki komşu balonların sayıları çarpılır. Tüm balonları patlatarak maksimum toplam puanı bul. Örnek: [3,1,5,8] → 167.
advanceddef max_coins(...)Regular Expression Matching
String s, pattern p ile eşleşiyor mu? '.' herhangi bir karakter, '*' önceki karakterin 0 veya daha fazlası. Örnek: s='aab', p='c*a*b' → True.
advanceddef is_match(...)Target Sum
Her sayının önüne + veya - koyarak hedef toplama ulaş. Kaç farklı yol var? Örnek: nums=[1,1,1,1,1], target=3 → 5 yol.
intermediatedef find_target_sum_ways(...)Longest Common Substring
İki string arasındaki en uzun ortak alt-string'in (substring) uzunluğunu bul. Subsequence değil, SUBSTRING (bitişik olmalı). Örnek: s1='abcdef', s2='zbcdf' → 3 ('bcd').
intermediatedef longest_common_substring(...)