Bir Kuralı Karşılayan Pencereleri Sayma
En fazla-K ile en fazla-(K-1) arasındaki fark hilesi.
Bir Kuralı Karşılayan Pencereleri Sayma, CoddyKit'te ücretsiz bir Coding Interview Prep dersidir. Bu, 4 dersinin 4. 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.
Ölçmek Değil, Saymak
Bazen en uzun alt diziyi bulmak değil, bir kuralı sağlayan alt dizileri saymak gerekir. Küçük bir yöntem bunu kolay bir kaydırmalı pencere problemine dönüştürür. 🔢
Tam K Zorluğu
Bir şeyden tam olarak K tane içeren alt dizileri doğrudan saymak zordur. Sınır sürekli değiştiğinden tek ve temiz bir pencere oluşturmak kolay değildir.
En Fazla K Olarak Yeniden Çerçeveleme
En fazla K içeren alt dizileri tek bir pencereyle saymak çok daha kolaydır. Sağı genişletirken, her geçerli sol konum bir alt dizi oluşturur.
Çıkarma Yöntemi
Tam K, atMost(K) eksi atMost(K - 1) değerine eşittir. İki kolay sayımı birleştirerek aslında istediğiniz zor sayımı elde edersiniz.
answer = at_most(k) - at_most(k - 1)Yardımcı İşlevi Oluşturun
En fazla k içeren alt dizileri sayan tek bir işlev yazın. Bu işlev bir pencereyi kaydırır ve sayı k'yı aştığında pencereyi küçültür.
def at_most(k):
left = 0
total = 0İhlalde Küçültün
Sağı genişletin ve pencereyi güncelleyin. Pencere k'dan fazla değer içerdiği sürece solu ileri taşıyarak tekrar aralığa sokun.
while count > k:
# remove a[left]
left += 1Pencere Sayısını Ekleyin
Pencereyi düzelttikten sonra, sağda biten ve başlangıcı soldan itibaren herhangi bir konum olan her alt dizi geçerlidir. Sağ eksi sol artı bir değerini ekleyin.
total += right - left + 1Bu Sayım Neden Çalışır
Sabit bir sağ konumu için geçerli başlangıçlar sol, sol+1 ve sağa kadar olan konumlardır. Bu, tamamı en fazla k koşulunu sağlayan tam olarak right - left + 1 alt dizi demektir.
İki Çağrıyı Birleştirin
Yardımcı işlevi iki kez çalıştırın ve sonuçları çıkarın. Her çağrı O(n) sürdüğünden, tam K sayımı da genel olarak doğrusal kalır.
return at_most(k) - at_most(k - 1)Kenar Durumunu Koruyun
k sıfırken atMost(k - 1) ifadesi eksi bir kullanır. Yardımcı işlevin yine anlamlı bir sıfır sayımı döndürmesi için bu durumu ele alın.
Nerelerde Uygulanır
Bu en fazla eksi en fazla fikri, tam olarak K farklı değer, K tek sayı veya pencere başına tekdüze herhangi bir özellik içeren alt dizileri saymaya uygundur.
Hızlı Kontrol
Tam olarak K farklı eleman içeren alt dizileri saymak istiyorsunuz.
Özet
Tam K sayımı yalnızca atMost(K) eksi atMost(K - 1) değeridir. Her yardımcı işlev bir pencereyi O(n) sürede kaydırır; böylece toplam sayım doğrusal kalır. ✅
Sıkça Sorulan Sorular
“Bir Kuralı Karşılayan Pencereleri Sayma” dersi ücretsiz mi?
Evet — “Bir Kuralı Karşılayan Pencereleri Sayma” 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.
“Bir Kuralı Karşılayan Pencereleri Sayma” dersinde ne öğreneceğim?
En fazla-K ile en fazla-(K-1) arasındaki fark hilesi. 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 4. dersidir.
“Bir Kuralı Karşılayan Pencereleri Sayma” 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
- Sabit Boyutlu Pencere Toplamları
- İki İşaretçiyle Değişken Pencere
- Tekrarsız En Uzun Alt Dize
- Bir Kuralı Karşılayan Pencereleri Sayma