Coding Interview Prep · Lektion

Differenz-Arrays für Bereichsaktualisierungen

Führen Sie viele Bereichsadditionen schnell aus

Lektion 4 von 413 Schritte

Differenz-Arrays für Bereichsaktualisierungen ist eine kostenlose Coding Interview Prep-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Coding Interview Prep-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Coding Interview Prep-Kurs umfasst insgesamt 4 Lektionen.

Drehen Sie das Problem um

Präfixsummen beantworten Bereichsabfragen schnell. Ein Differenzarray kehrt das Prinzip um und wendet viele Bereichsaktualisierungen schnell an. 🔁

Der langsame Weg

Wenn Sie bei vielen Wiederholungen jedem Element eines Bereichs einen Wert hinzufügen, kostet jede Aktualisierung O(n). Über q Aktualisierungen hinweg explodiert dieser Aufwand.

Speichern Sie nur die Änderungen

Statt jede Zelle anzufassen, speichern Sie nur, wo eine Änderung beginnt und wo sie endet. Markieren Sie die Ränder, nicht die Mitte.

Was ein Differenzarray speichert

Ein Differenzarray speichert die Differenz zwischen jedem Element und dem vorherigen. Wenn Sie eine solche Differenz ändern, verschieben Sie damit einen ganzen späteren Abschnitt.

Der Trick mit zwei Markierungen

Um v auf den Bereich von l bis r zu addieren, addieren Sie v am Index l und subtrahieren v am Index r + 1. Nur zwei Änderungen decken den gesamten Bereich ab.

diff[l] += v
diff[r + 1] -= v

Warum das Minuszeichen

Das Plus bei l schaltet die Änderung ein, das Minus bei r + 1 schaltet sie wieder aus. Zusammen begrenzen sie die Aktualisierung auf einen Bereich.

Wenden Sie alle Aktualisierungen günstig an

Jede Aktualisierung besteht nur aus zwei Array-Schreibzugriffen, daher benötigen q Aktualisierungen insgesamt O(q). Die aufwendige Arbeit wird bis zum Ende aufgeschoben.

Stellen Sie das endgültige Array wieder her

Nachdem alle Markierungen gesetzt sind, berechnen Sie eine Präfixsumme des Differenzarrays. Dieser eine Durchlauf rekonstruiert jeden endgültigen Wert.

for i in range(1, n):
    diff[i] += diff[i - 1]

Planen Sie einen Schutzplatz ein

Machen Sie das Array um eine Zelle länger, damit r + 1 niemals über das Ende hinausgeht. Dieser zusätzliche Schutzplatz verhindert Indexfehler.

Der Gesamtaufwand

Sie benötigen O(q), um die Aktualisierungen zu markieren, und einen Durchlauf mit O(n), um das Array wiederherzustellen. Der kombinierte Aufwand liegt weit unter dem naiven O(n mal q).

Hier spielt es seine Stärke aus

Differenzarrays eignen sich hervorragend für Buchungszahlen, Mautgebühren und alle Aufgaben mit vielen Bereichsadditionen und einer abschließenden Ausgabe.

Kurzer Check

Sie addieren v zu jedem Element vom Index l bis r.

Zusammenfassung

Sie können Bereichsaktualisierungen mit einem Differenzarray bündeln: Markieren Sie l und r + 1 und berechnen Sie anschließend einmal die Präfixsumme, um das Array wiederherzustellen. Schnelle Aktualisierungen, einmaliges Auslesen. ✅

Kostenlos starten

Lerne Coding Interview Prep mit einem KI-Tutor — kostenlos

Schreibe und führe echten Code in deinem Browser aus, bekomme sofortige Hilfe von einem 24/7 KI-Tutor und setze dein Lernen im Web oder in der App fort.

Kurse
90
Lektionen
360

Häufig gestellte Fragen

Ist die Lektion „Differenz-Arrays für Bereichsaktualisierungen“ kostenlos?

Ja — der vollständige Text von „Differenz-Arrays für Bereichsaktualisierungen“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Coding Interview Prep-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Coding Interview Prep-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Differenz-Arrays für Bereichsaktualisierungen“?

Führen Sie viele Bereichsadditionen schnell aus Du übst Coding Interview Prep mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Coding Interview Prep zu starten?

Keine Vorkenntnisse erforderlich. Coding Interview Prep auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.

Wie lange dauert die Lektion „Differenz-Arrays für Bereichsaktualisierungen“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Coding Interview Prep-Lektion Code schreiben und ausführen?

Ja. Jede Coding Interview Prep-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Ein Präfixsummen-Array erstellen
  2. Jeden Bereich durch Subtraktion summieren
  3. Teilarrays mit einer Zielsummme zählen
  4. Differenz-Arrays für Bereichsaktualisierungen
← Zurück zu Coding Interview Prep