Ortada Buluşma
Aramayı bölerek üssü yarıya indirin.
Ortada Buluşma, CoddyKit'te ücretsiz bir Coding Interview Prep dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Coding Interview Prep öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Coding Interview Prep kursu toplamda 4 dersten oluşur.
Kaba kuvvet yetersiz kaldığında
Bazı problemlerde N yaklaşık 40 olur; tüm 2^N alt kümelerini denemek umutsuzdur. Ortadan buluşma yöntemi bu orta büyüklükteki durumları kurtarır. 🤝
Temel fikir
Girdiyi iki yarıya bölün. Her yarıyı kaba kuvvetle çözün, ardından iki kısmi sonucu akıllıca birleştirin.
Üssü yarıya indirme
N/2 boyutundaki iki yarının her biri, toplamda 2^N yerine 2^(N/2) maliyet getirir. Bu karekök oranındaki küçülme, 2^40'ı kullanılabilir bir 2^20'ye dönüştürür.
Klasik hedef: alt küme toplamı
Bir alt kümenin toplamının T hedef değerine eşit olup olmadığını sorun. N yaklaşık 40 iken alt küme toplamı, ders kitaplarındaki klasik ortadan buluşma problemidir.
İlk yarıyı listeleme
Sol yarıdaki her alt kümenin toplamını listeleyip saklayın. N/2 öğeyle bu yalnızca 2^(N/2) toplamdır.
from itertools import combinations
left = arr[:len(arr)//2]
sums_l = []İkinci yarıyı listeleme
Aynı işlemi sağ yarı için yaparak tüm alt küme toplamlarının listesini oluşturun. Artık yönetilebilir iki listeniz var.
Aramayla birleştirme
Her sağ toplam r için, T eksi r'ye eşit bir sol toplam gerekir. Bir küme veya sıralanmış liste bu kontrolü hızlandırır.
need = T - r
found = need in left_setEşleştirmenin iki yolu
Kesin hedefler için bir karma kümesi kullanın. Sayma veya en yakın toplamlar için bir yarıyı sıralayıp üzerinde ikili arama yapın.
Zaman maliyeti
Toplam iş, arama veya sıralama için bir log çarpanı ile yaklaşık 2^(N/2) kadardır. N yaklaşık 40 iken işi yapılabilir kılan karmaşıklık budur.
Bellek bir ödünleşimdir
Bir yarının tamamını sakladığınız için bellek kullanımı 2^(N/2)'ye kadar büyür. Sınır içinde kalmak için yalnızca gerekli olanları saklayın.
Başka nerelerde öne çıkar
Alt küme toplamının yanı sıra, bir sınırın altındaki en büyük alt küme, çiftleri sayma ve ayrık logaritma türü problemler için de kullanın. Temiz bir bölme fikrini sever.
Hızlı kontrol
N öğeli bir alt küme problemine ortadan buluşma yöntemini uyguluyorsunuz. Yaklaşık zaman maliyeti nedir?
Özet
İki yarıya bölün, her birini kaba kuvvetle çözün, ardından sol ve sağ toplamları eşleştirin. Çok büyük bir hızlanma karşılığında az miktarda bellekten ödün verdiniz. 🚀
Sıkça Sorulan Sorular
“Ortada Buluşma” dersi ücretsiz mi?
Evet — “Ortada Buluşma” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Coding Interview Prep kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Coding Interview Prep kursu toplamda 4 dersten oluşur.
“Ortada Buluşma” dersinde ne öğreneceğim?
Aramayı bölerek üssü yarıya indirin. Coding Interview Prep ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Coding Interview Prep öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Coding Interview Prep, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.
“Ortada Buluşma” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Coding Interview Prep dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Coding Interview Prep dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Oyunlarda Kazanma ve Kaybetme Durumları
- Nim ve Grundy Sayısı
- Ortada Buluşma
- Hızlı Hata Ayıklama: Stres Testleri ve Triage