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

Kaynaklar

Kaynaklar

Bu sitenin yeri, karmaşıklık temelleri, pratik platformları, kitaplar ve klasik referanslar, kalıp odaklı mülakat hazırlığı için derlendi.

Bu site nereye oturur

DSA Patterns, LeetCode tarzı mülakatlar için kalıp tanıma katmanıdır: katalog kalıpları, şablonlar (TypeScript / Python / C#), zihinsel modeller ve sitede yazılmış problem yolları. Her problemin kaynağını gösterir; resmi editoryal kopyalamaz.

  • Burada başla: Big-O’yu hatırla → yol haritası temelleri → kalıp şablonu → yazı + test.
  • Başka yerde pekiştir: hacim için LeetCode / NeetCode; görselleştirme için VisuAlgo; yarışma için Codeforces / AtCoder; canlı pratik için Pramp veya interviewing.io.
  • Derinlik için kitap: CLRS (teori), EPI / CtCI (mülakat problemleri), Grokking (görsel sezgi).

Karmaşıklık ve Big-O

Kod mülakatları için pratik bir giriş: Big-O ne demek, yaygın sınırlar, döngüleri nasıl analiz edersin, alan karmaşıklığı nerede devreye girer.

Big-O rehberini oku →

Matematik temelleri

DSA’nın arkasındaki matematik: büyüme hızları, logaritmalar, toplamlar, kombinatorik, modüler aritmetik, olasılık ve graf teorisi - görselleştirildi ve animasyonlu.

Matematik bölümünü keşfet →

Dil kartları

Bu sitenin şablon verdiği üç dil için mülakat deyimleri: Python, TypeScript ve C#.

Mülakatta

Kodlamadan önce

  • Problemi yeniden söyle: girdiler, çıktılar ve tipler.
  • Algoritmayı değiştiren kısıtları sor: girdi boyutu, girdiyi mutasyona uğratabilir misin, zaman veya bellek sınırı.
  • Normal bir örnek yürü, sonra boş ve tek elemanlı. Okumayı mülakatçıyla doğrula.
  • Kalıp ailesini adlandır: tarama, arama, pencere, graf, ağaç veya dinamik programlama.

Kodlarken

  • Doğru bir kaba kuvveti masaya koy, karmaşıklığını söyle, sonra sıkılaştır.
  • Konuşmaya devam et. Yaklaşımı, trade-off’u ve seçmediğin alternatifi anlat.
  • Değerin ne olduğunu söyleyen isimler kullan.

Kodladıktan sonra

  • Üzerinde anlaştığın örnekleri izle.
  • Aşağıdaki kenar durumları izle.
  • Zaman ve ek alanı söyle; hangi satırın baskın olduğunu belirt.
  • Daha sıkı bir sınır veya daha temiz bir şekil açıksa, ne olduğunu söyle.

Kenar durumlar

  • Sayılar: sıfır, negatifler, belirtilen min/max. Java ve C’de sabit genişlik taşması. Python int taşmaz. Sıfıra bölme. Float’larda == değil tolerans.
  • Dizgiler: boş ve tek karakter. Hepsi aynı. Boşluk, noktalama, ASCII dışı. Her iki değere de izin veren dillerde None ile "".
  • Diziler: boş, bir eleman, tümü kopya. Zaten sıralı ve ters sıralı. Dil izin veriyorsa None girdiler.
  • Ağaç ve graf: boş ve tek düğüm. Yalnızca sol veya yalnızca sağ çocuklar. Kopuk graf, self-loop, döngü. Topolojik sıralama DAG ister. Dijkstra negatif olmayan ağırlık ister.
  • Matrisler: boş, 1×1, tek satır, tek sütun. Kare ve dikdörtgen.

İşe yarayan alışkanlıklar

  1. Yazmadan önce yaklaşımda anlaş. Birkaç dakikalık sessiz düşünmek yararlıdır. Mülakatın geri kalanında susmak başarısızlıktır.
  2. Kısıt eksikse sor.
  3. Senden istenmeden test et.
  4. Her seferinde zaman ve alanı söyle.
  5. İpucunu yeni bilgi say ve çözümü değiştir.

Zarar veren alışkanlıklar

  1. Problemi yeniden söyleyemeden kodlamak.
  2. Boş girdiyi atlamak.
  3. İpucunu yok saymak.
  4. Bug’ı izlemek yerine savunmak.
  5. Tek döngü isteyen probleme çerçeve kurmak.
  6. Karmaşıklık söylemeden durmak.

Pratik platformları

Deneme mülakatları

Kitaplar

Çevrimiçi referanslar

Dış bağlantılar yalnızca öneridir. Bu ürün veya sitelerle bağlantımız yoktur.