0Pricing
Coding Interview Prep · Ders

Sabit Boyutlu Pencere Toplamları

k uzunluğundaki pencereyi O(n) içinde kaydırın.

Sabit Boyutlu Pencere Toplamları, CoddyKit'te ücretsiz bir Coding Interview Prep dersidir. Bu, 4 dersinin 1. 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.

Tekrarlanan Toplam Problemi

Birçok görev, k ardışık elemandan oluşan her bloğun toplamını ister. Her bloğu baştan hesaplamak israftır; bunu daha verimli yapabilirsiniz. 🪟

Önce Yavaş Yöntem

Naif yaklaşım, uzunluğu k olan her pencereyi ayrı ayrı toplar. Bu, aynı işi tekrarlar ve O(n çarpı k) maliyetine yol açar; büyük girdiler için bu yöntem fazla yavaştır.

for i in range(n - k + 1):
    s = sum(a[i:i + k])

Temel Fikir

Komşu pencereler neredeyse tamamen örtüşür. Bir adım sağa ilerlerken yalnızca en soldaki eleman çıkarılır ve sağa yeni bir eleman eklenir.

İlk Pencereyi Başlatın

Önce ilk k elemanı bir kez toplayarak başlayın. Bu tek toplamı, pencere ileri doğru kaydıkça güncellemeye devam edeceksiniz.

window = sum(a[:k])
best = window

Bir Adım Kaydırın

Pencereyi ilerletmek için gelen elemanı ekleyin ve çıkan elemanı çıkarın. Böylece her adım sabit O(1) işte tamamlanır.

for i in range(k, n):
    window += a[i] - a[i - k]

Cevabınızı Takip Edin

Her kaydırmadan sonra, şimdiye kadar görülen pencere toplamlarının en büyüğü gibi ihtiyaç duyduğunuz değeri güncelleyin. Pencerenin değeri her zaman anında hazır olur.

    best = max(best, window)

Toplam Maliyet Doğrusaldır

Her elemana eklemek için bir kez, çıkarmak için de bir kez dokunursunuz; bu nedenle tüm tarama O(n) sürer. Böylece büyük kısıtlar kolayca karşılanır.

İndekslere Dikkat Edin

Pencereden çıkan eleman a[i - k] konumundadır; a[i - 1] değildir. Bu kaymayı doğru ayarlamak, sabit pencere kullanımındaki en yaygın hatadır.

Ortalamalar Ekstra Maliyet Getirmez

Toplam yerine pencerenin en yüksek ortalamasını mı istiyorsunuz? Takip ettiğiniz pencere toplamını k'ya bölmeniz yeterlidir. Kaydırma mantığı hiç değişmez.

avg = window / k

Küçük Dizileri Ele Alın

Dizi k'dan kısaysa tam bir pencere yoktur. İndeks hatasını önlemek için baştan len(a) ile k'yı karşılaştırın ve erken dönün.

if n < k:
    return None

Sabit Pencereler Ne Zaman Uygundur

Pencere uzunluğu sabitse ve toplam, sayım veya basit anlık istatistikler gibi değerleri ucuza birleştirebiliyorsanız bu kalıbı kullanın.

Hızlı Kontrol

Bir dizi boyunca k boyutunda bir pencereyi her seferinde bir adım sağa kaydırıyorsunuz.

Özet

İlk pencereyi bir kez başlatın, ardından her adımda ekleyip çıkararak O(1) sürede kaydırın. Sabit boyutlu taramanın tamamı doğrusal zamanda çalışır. ✅

Sıkça Sorulan Sorular

“Sabit Boyutlu Pencere Toplamları” dersi ücretsiz mi?

Evet — “Sabit Boyutlu Pencere Toplamları” 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.

“Sabit Boyutlu Pencere Toplamları” dersinde ne öğreneceğim?

k uzunluğundaki pencereyi O(n) içinde kaydırın. 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 1. dersidir.

“Sabit Boyutlu Pencere Toplamları” 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

  1. Sabit Boyutlu Pencere Toplamları
  2. İki İşaretçiyle Değişken Pencere
  3. Tekrarsız En Uzun Alt Dize
  4. Bir Kuralı Karşılayan Pencereleri Sayma
← Coding Interview Prep Sayfasına Dön