Yükleniyor...
← Ana Sayfa
🧮 Algoritmalar
algorithms
Algoritmik düşünme ve optimizasyon.
21
soru
Tümü
T
21
Başlangıç
B
5
Orta
O
16
İleri
İ
0
21
soru
#
Soru
Zorluk
46
İkili Arama
Sıralı bir listede binary search ile hedef sayının indeksini döndür. Bulunamazsa -1 döndür.
başlangıç
başlangıç
47
Bubble Sort
Bubble sort algoritmasıyla bir listeyi küçükten büyüğe sırala. Orijinal listeyi değiştirme, kopyasını döndür.
başlangıç
başlangıç
48
Bozuk Para Hesabı (Greedy)
Verilen miktarı en az sayıda bozuk para ile öde. Kullanılabilir bozukluklar: [100,50,25,10,5,1] kuruş.
başlangıç
başlangıç
49
Kaplama Problemi
n merdiven basamağı var. Her adımda 1 veya 2 basamak çıkabilirsin. Kaç farklı yol var? (Dinamik programlama)
orta
orta
50
En Kısa Yol (BFS)
Bir 2D grid'de (0=geçit, 1=duvar) baştan (0,0) hedefe (n-1,m-1) en kısa yol kaç adım? Yol yoksa -1 döndür.
orta
orta
68
İki Maaş Bordrosunu Birleştir
İK ekibindesin. Elinde iki bölümün maaş listesi var: - mühendislik (azalan sırada, en yüksek maaş başta) - pazarlama (artan sırada, en düşük maaş başta) İki listeyi **birleştirip tek maaş listesi** oluşturman lazım. Sonuç azalan sırada olmalı (en yüksek maaş başta). 📌 Önemli: Her iki girdi listesi de kendi içinde sıralı. Bu sana avantaj sağlıyor — sıfırdan sıralama yapma. ⚠️ sorted()/sort() KULLANMA. Mülakat sorusu olarak O(n+m) yerine O(n log n) yazarsan eleniyorsun. 💡 İpucu (gizli): İki sıralı listeyi tek sıralı liste yapmak için klasik bir algoritma var — ismi "merge". İnternette 'merge two sorted lists' diye aratabilirsin ama önce kendin dene.
orta
orta
70
En Yakın Rakam Toplamı
Bir sayı dizisinde, toplamı hedef sayıya en yakın olan iki elemanı bul. Birden fazla çözüm varsa, herhangi birini döndürmek yeterli. Sonuç: [eleman1, eleman2] şeklinde liste döndür. Örnek: [1, 2, 3, 4, 5], hedef = 8 → [3, 5] (toplam 8, tam isabet) Örnek: [1, 2, 3, 4], hedef = 10 → [4, 4] veya [1, 4] (en yakın toplam 9)
orta
orta
71
Tekrarlanan Karakter Zinciri
Bir string'de art arda tekrar eden karakterlerden oluşan en uzun zinciri bul. Sonuç: (karakter, zincir uzunluğu) şeklinde tuple döndür. Örnek: 'aabbbcccddaaa' → ('b', 3) veya ('a', 3) Örnek: 'abcdef' → ('a', 1) (tüm karakterler 1'er)
orta
orta
72
Alt Dizi Toplam Kontrolü
Bir sayı listesi ve bir hedef sayı veriliyor. Listedeki herhangi bir alt dizinin (continuous subsequence) toplamının hedef sayıya eşit olup olmadığını kontrol et. ⚠️ Tüm alt dizileri brute-force deneme O(n²) yapma. Daha verimli bir yöntem düşün.
orta
orta
73
Benzersiz Alt Dizgi Sayısı
Bir string'deki tüm benzersiz alt dizgilerin (substring) sayısını bul. Boş alt dizgi sayılmaz. Örnek: 'abc' → 'a','b','c','ab','bc','abc' → 6 Örnek: 'aaa' → 'a','aa','aaa' → 2 (tekrarlar sayılmaz) Örnek: '' → 0
orta
orta
88
Sayilari Toplami Hedefe Esit Olan Ciftler
Bir liste ve bir hedef sayi var. Listedeki hangi iki sayinin toplami hedefe esit? Tum benzersiz ciftleri (kucuk, buyuk) sirali liste olarak dondur. Ayni eleman iki kez kullanilamaz. Hic cift yoksa bos liste dondur. Ornek: nums=[2,7,11,15], target=9 -> [[2,7]]
orta
orta
89
Rotasyon Adimini Bul
Bir liste veriliyor. Bu liste sirali bir dizinin rotasyonu. Rotasyon adimini bul (kac kez sola donduruldu). [3,4,5,1,2] sirali [1,2,3,4,5]'in 3 sola rotasyonu -> 3 dondur. Zaten sirali ise 0. [1,2,3,4,5] -> 0 [5,1,2,3,4] -> 1 (sola) Not: Rotasyon adimi 0 ile len(nums)-1 arasinda.
orta
orta
94
Sirali Dizide Ilk ve Son Occurrence
Sirali bir dizide target degerin ILK ve SON indeksini bul. Yoksa [-1, -1] dondur. find_first = lower bound, find_last = upper bound. Ornek: nums=[5,7,7,8,8,10], target=8 -> [3, 4] Ornek: nums=[5,7,7,8,8,10], target=6 -> [-1, -1]
orta
orta
95
Dondurulmus Sirali Dizide Arama
Dondurulmus (rotated) sirali bir dizide target degerini ara. Dizi ornek: [4,5,6,7,0,1,2], target=0 -> 4 (indeks). Yoksa -1 dondur. O(log n) zaman karmasikligi hedefle (duz linear arama degil).
orta
orta
96
Dizide En Yuksek Dag (Peak Element)
Bir dizide peak element: nums[i-1] < nums[i] > nums[i+1]. Sadece komusuna bakarak (O(log n)) peak bul. Birkac peak varsa herhangi birini dondur. Dizi sinirlarinda -sonsuz kabul edilir (ilk ve son elemanlar her zaman peak olabilir).
orta
orta
97
Iki Isaretci ile Palindrom Kontrolu
Bir string'in palindrom olup olmadigini iki isaretci ile kontrol et. Alfabetik olmayan karakterleri (bosluk, noktalama, buyuk/kucuk harf) yok say. Sadece alfanumerik karakterlere bak. O(n) zaman, O(1) ek alan.
orta
orta
99
Iki Isaretci Ile Ters Ciftleri Say
Bir dizide, dizideki elemanlarin toplami daha buyuk olan (ters) ciftleri say. Ornek: [2, 4, 1, 3, 5] -> (4,1), (4,3), (5,1), (5,3) = 4 cift. O(n log n) veya O(n) hedef.
orta
orta
100
En Sik K Eleman (Top K Frequent)
Bir dizide en sik gecen K elemani bul. Siralama onemli degil. Ornek: nums=[1,1,1,2,2,3], k=2 -> [1, 2] O(n log k) hedef.
orta
orta
101
Iki Dizi Kesisimi (Set Ile)
Iki dizinin kesisimini (ortak elemanlar) dondur. Tekrarlar olmasin, siralama onemli degil. Ornek: nums1=[1,2,2,1], nums2=[2,2] -> [2] O(n+m) zaman, O(n) ek alan.
başlangıç
başlangıç
102
En Uzun Consecutive Sequence
Bir dizideki en uzun ard arda gelen sayi dizisinin uzunlugunu bul. O(n) zaman karmasikligi hedefle. Ornek: [100, 4, 200, 1, 3, 2] -> 4 (1,2,3,4 dizisi) Ornek: [0,3,7,2,5,8,4,6,0,1] -> 9 (0-8)
orta
orta
103
Anagram Kontrolu (Hash Table)
Iki string'in anagram olup olmadigini kontrol et (harfler ayni, siralama farkli). O(n) zaman hedefle (sorted O(n log n) daha yavas). Ornek: 'anagram', 'nagaram' -> True Ornek: 'listen', 'silent' -> True Ornek: 'hello', 'world' -> False
başlangıç
başlangıç