Förberedelse inför kodningsintervjuer · Lektion

Differensarrayer för intervalluppdateringar

Tillämpa många intervallvisa additionsoperationer snabbt

Lektion 4 av 413 steg

Differensarrayer för intervalluppdateringar är en gratis lektion i Förberedelse inför kodningsintervjuer på CoddyKit. Detta är lektion 4 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Förberedelse inför kodningsintervjuer, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Förberedelse inför kodningsintervjuer innehåller totalt 4 lektioner.

Vänd på problemet

Prefixsummor besvarar intervallfrågor snabbt. En differensarray vänder på det och tillämpar många intervalluppdateringar snabbt. 🔁

Det långsamma sättet

Att lägga till ett värde i varje element i ett intervall, upprepat många gånger, kostar O(n) per uppdatering. För q uppdateringar skenar den kostnaden.

Lagra förändringarna

I stället för att ändra varje cell registrerar Ni bara var en förändring börjar och var den slutar. Markera kanterna, inte mitten.

Vad en differensarray innehåller

En differensarray lagrar skillnaden mellan varje element och elementet före det. Om Ni ändrar en enda skillnad förskjuts ett helt efterföljande intervall.

Tricket med två markeringar

För att lägga till v från l till r lägger Ni till v vid index l och subtraherar v vid index r + 1. Bara två ändringar täcker hela intervallet.

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

Varför minustecknet behövs

Plustecknet vid l aktiverar förändringen, medan minustecknet vid r + 1 stänger av den igen. Tillsammans begränsar de uppdateringen till ett intervall.

Tillämpa alla uppdateringar billigt

Varje uppdatering består bara av två array-skrivningar, så q uppdateringar tar totalt O(q). Det tunga arbetet skjuts upp till slutet.

Återskapa den slutliga arrayen

När alla markeringar har placerats tar Ni en prefixsumma av differensarrayen. Det enda passet återskapar varje slutligt värde.

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

Använd en extra skyddsplats

Gör arrayen en cell längre så att r + 1 aldrig hamnar utanför slutet. Den extra skyddsplatsen förhindrar indexfel.

Den totala kostnaden

Ni lägger O(q) på att markera uppdateringarna och gör sedan ett pass på O(n) för att återskapa arrayen. Den sammanlagda kostnaden är mycket lägre än den naiva O(n gånger q).

Här vinner metoden

Differensarrayer är utmärkta för bokningsantal, vägavgifter och alla problem med många intervallsadditioner och en enda slutlig avläsning.

Snabbkontroll

Ni lägger till v i varje element från index l till r.

Sammanfattning

Ni kan samla intervalluppdateringar med en differensarray: markera l och r + 1 och ta sedan en enda prefixsumma för att återskapa arrayen. Snabba uppdateringar, en enda avläsning. ✅

Gratis att börja

Lär dig Förberedelse inför kodningsintervjuer med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
90
Lektioner
360

Vanliga frågor

Är lektionen ”Differensarrayer för intervalluppdateringar” gratis?

Ja – hela texten till ”Differensarrayer för intervalluppdateringar” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Förberedelse inför kodningsintervjuer, kan Ni uppgradera till CoddyKit PRO. Kursen i Förberedelse inför kodningsintervjuer innehåller totalt 4 lektioner.

Vad lär jag mig i ”Differensarrayer för intervalluppdateringar”?

Tillämpa många intervallvisa additionsoperationer snabbt Ni övar på Förberedelse inför kodningsintervjuer med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig Förberedelse inför kodningsintervjuer?

Du behöver inga förkunskaper. Utbildningen i Förberedelse inför kodningsintervjuer på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 4 av 4.

Hur lång tid tar lektionen ”Differensarrayer för intervalluppdateringar”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här Förberedelse inför kodningsintervjuer-lektionen?

Ja. Varje Förberedelse inför kodningsintervjuer-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Bygg en prefixsumme-array
  2. Summera valfritt intervall med subtraktion
  3. Räkna delarrayer med en målsumma
  4. Differensarrayer för intervalluppdateringar
← Tillbaka till Förberedelse inför kodningsintervjuer