İkili Arama
Sıralı bir listede binary search ile hedef sayının indeksini döndür. Bulunamazsa -1 döndür.
Verilen miktarı en az sayıda bozuk para ile öde
Verilen miktarı en az sayıda bozuk para ile öde. Kullanılabilir bozukluklar: [100,50,25,10,5,1] kuruş.
Kaplama Problemi
n×m'lik bir grid var (ör: 3×3). Sol üstten (0,0) sağ alta (n-1,m-1) sadece SAĞ veya AŞAĞI hareket edebilirsin. Kaç farklı yol var? Bu klasik bir DP problemidir: dp[i][j] = dp[i-1][j] + dp[i][j-1]. n=1 veya m=1 için yol sayısı 1'dir. Örnek: 2×2 grid'de 2 yol (sağ-aşağı veya aşağı-sağ).
Alt Dizi Toplam Kontrolü
Bir sayı listesi ve bir hedef sayı veriliyor. Listedeki herhangi bir alt dizinin (continuous subsequence) toplamı hedefe eşit mi? Varsa True, yoksa False döndür. Boş alt dizi toplamı 0 kabul edilir, hedef 0 ise True. Örnek: [1, 4, 2, 7], hedef=6 → True (4+2). Örnek: [1, 4, 2, 7], hedef=20 → False. O(n^2) brute force kabul, O(n) prefix sum ile optimal çözüm teşvik edilir.
Sirali Dizide Ilk ve Son Occurrence
Sirali bir dizide target degerin ILK ve SON indeksini bul. Yoksa [-1, -1] dondur. find_first = lower bound
Dondurulmus Sirali Dizide Arama
Döndürülmüş (rotated) sıralı bir dizide hedef değerin indexini bul. Aramayı O(log n)'de yap (binary search varyasyonu). Yoksa -1 döndür.
Tepe Elemanı Bul
Bir dizide tepe elemanı bul: nums[i-1] < nums[i] > nums[i+1]. Sadece komşularına bakarak (O(log n)) bulunabilir. Birden fazla tepe varsa herhangi birinin indeksini döndür. Örnek: [1, 2, 3, 1] → 2 (nums[2]=3). Kenar elemanlar da tepe olabilir (sadece bir komşuya bakılır). Modified binary search: ortadan başla, tarafa göre daralt.
Iki Isaretci ile Palindrom Kontrolu
Bir string'in palindrom olup olmadığını iki işaretçi ile kontrol et. Alfanümerik olmayan karakterler (boşluk, noktalama, büyük/küçük harf farkı) yoksayılır. Boş string palindrom kabul edilir. Örnek: 'A man, a plan, a canal: Panama' → True. Örnek: 'race a car' → False. str.replace/re.sub yasak, manuel karakter kontrolü gerekli.
Iki Isaretci Ile Ters Ciftleri Say
Bir dizide, dizideki elemanların toplamı daha büyük olan (dominant) sayıyı bul. Örnek: [16, 6, 3, 2, 1] → 16 (toplam 6+3+2+1=12, 16>12). 2x > sum(dizi) kontrolü, max() ile en büyük dominant eleman.
Bir dizide en sik gecen K elemani bul
Bir dizide en sik gecen K elemani bul. Siralama onemli degil. Ornek: nums=[1,1,1,2,2,3]
İki Dizinin Kesişimi
İki dizinin kesişimini (ortak elemanlar) döndür. Sonuçtaki her eleman eşsiz olmalı, sıralama önemli değil.
En Uzun Consecutive Sequence
Bir dizideki en uzun ard arda gelen sayı dizisinin uzunluğunu bul. Örnek: [100, 4, 200, 1, 3, 2] → 4 ([1,2,3,4]). HashSet yaklaşımı: O(n) — her eleman için zincirin uzunluğunu bul (komsuya bakarak).
Bir dizide n/2'den fazla geçen elemanı bul
Bir dizide n/2'den fazla geçen elemanı bul. Her zaman böyle bir eleman olduğu garanti edilir. Birden fazla varsa herhangi birini döndür. Örnek: [3, 2, 3] → 3. Örnek: [2, 2, 1, 1, 1, 2, 2] → 2. Boyer-Moore Voting Algorithm O(n) O(1) optimal çözüm.
En Uzun Artan Alt Dizi Uzunluğu
Bir dizideki en uzun kesin artan altdizinin uzunluğunu bul. LIS — O(n log n) patience sorting veya O(n²) DP. Örnek: [10, 9, 2, 5, 3, 7, 101, 18] → 4 (2, 3, 7, 101). Altdizi sürekli olmak zorunda değil, sadece artan sırada olmalı.
Çakışan aralıkları birleştir
Çakışan aralıkları birleştir. Sonuç: çakışmayan, sıralı aralıklar. Girdi: [[1,3],[2,6],[8,10],[15,18]] -> [[1,6],[8,10],[15,18]] Yapıyı sen seç.
İlgili Kategoriler
Python Dinamik Programlama
Dinamik programlama soruları: fibonacci memoization, knapsack, edit distance, longest common subsequence.
Tüm Mülakat Kategorileri
Python mülakat soruları kataloğu: OOP, SQLite, Pandas, veri yapıları ve daha fazlası.
Python Kodları
Hazır Python kodu örnekleri: liste, dict, OOP, Pandas, Algoritmalar. Kopyala, çalıştır, öğren.