0Pricing
Competitive Programming Academy · Ders

Çıkarma ile Her Aralığı Toplama

range[l..r] sorgusunu sabit zamanda yanıtlayın.

Çıkarma ile Her Aralığı Toplama, CoddyKit'te ücretsiz bir Competitive Programming Academy dersidir. Bu, 4 dersinin 2. 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, Competitive Programming Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Competitive Programming Academy kursu toplamda 4 dersten oluşur.

Asıl Kazanç

Önek toplamı dizisini oluşturmak hazırlık aşamasıydı. Şimdi asıl sihir geliyor: herhangi bir aralık toplamını tek bir çıkarma işlemiyle yanıtlamak. ⚡

Temel Fikir

Bir aralık toplamı, büyük bir toplamdan küçük bir toplamın çıkarılmasından ibarettir. İki önek değerini çıkarmak, aralığınızın dışındaki her şeyi düzenli biçimde yok eder.

Formül

l ile r arasındaki öğeleri toplamak için prefix[r + 1] değerinden prefix[l] değerini çıkarın. Bu tek formül her aralık için çalışır.

range_sum = prefix[r + 1] - prefix[l]

Nasıl Çalışır

prefix[r + 1], r'ye kadar olan her şeyi; prefix[l] ise l'den önceki her şeyi içerir. Fark alındığında tam olarak ortadaki bölüm kalır.

Uygulamalı Bir Örnek

[3, 1, 4] için prefix değeri [0, 3, 4, 8] olur. 1 ile 2 arasındaki dizinleri toplamak için 8'den 3 çıkarın; sonuç 5 olur. Bu da 1 artı 4 değerine eşittir.

Sabit Zamanlı Sorgular

Her query yalnızca bir çıkarma işleminden oluştuğu için O(1) zamanda çalışır. Bin query için sorgu başına gereken süre, tek bir query ile aynıdır.

Bir Eksik-Bir Fazlaya Dikkat Edin

En sık yapılan hata, üst uçtaki dizindir. Baştaki sıfırla birlikte her zaman prefix[r + 1] kullanın; prefix[r] kullanmayın. Bu sınırı kontrol edin.

Dahil ve Hariç

r'nin dahil edilip edilmediğine erkenden karar verin. Bu formül, aralığı hem l hem de r'yi dahil edecek şekilde ele alır; yarışma problemlerinin çoğu da bunu bekler.

Bir İşlevin İçine Alın

Küçük bir yardımcı işlev, mantığınızı okunabilir ve dizinlerinizi tek bir yerde tutar. Matematiği satır içine yazmak yerine bu yardımcı işlevden yararlanın.

def query(l, r):
    return prefix[r + 1] - prefix[l]

Dizinin Tamamını Ele Alın

Dizinin tamamını toplamak için l değerini 0, r değerini n eksi 1 olarak belirleyin. Formül, genel toplam olan prefix[n] değerini verir.

En Çok Nerede İşe Yarar

Sabit bir dizi üzerinde çok sayıda aralık toplamı sorusu sorulan her problemde, prefix toplamları query başına O(n) süren döngüyü anında alınan yanıtlara dönüştürür.

Hızlı Kontrol

l ile r arasındaki dizinlerin toplamını, r dahil olacak şekilde istiyorsunuz.

Özet

Artık prefix[r + 1] eksi prefix[l] ile her aralık toplamını O(1) zamanda hesaplayabilirsiniz. Baştaki sıfırın oluşturduğu kaymaya dikkat ederseniz hatasız çalışırsınız. ✅

Sıkça Sorulan Sorular

“Çıkarma ile Her Aralığı Toplama” dersi ücretsiz mi?

Evet — “Çıkarma ile Her Aralığı Toplama” 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 Competitive Programming Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Competitive Programming Academy kursu toplamda 4 dersten oluşur.

“Çıkarma ile Her Aralığı Toplama” dersinde ne öğreneceğim?

range[l..r] sorgusunu sabit zamanda yanıtlayın. Competitive Programming Academy 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.

Competitive Programming Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Competitive Programming Academy, 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 2. dersidir.

“Çıkarma ile Her Aralığı Toplama” 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 Competitive Programming Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Competitive Programming Academy 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. Önek Toplam Dizisi Oluşturma
  2. Çıkarma ile Her Aralığı Toplama
  3. Hedef Toplamlı Alt Dizileri Sayma
  4. Aralık Güncellemeleri için Fark Dizileri
← Competitive Programming Academy Sayfasına Dön