#100DaysOfCodeChallenge

:brain: From Naive Loops to O(1) Brilliance: The Power of Prefix Sums &

Difference Arrays

When I first started solving array problems, I always reached for loops. Want to find the sum of a subarray? Loop. Want to update a range of elements? Loop again.

But then I discovered something that changed everything — prefix sums and difference arrays. These techniques are all about one thing: Do a little work up front to save a lot of time later.

:round_pushpin:The Problem

Given an array, you’re asked repeatedly:

“What’s the sum of elements between index L and R?”

The naive approach:

js

CopyEdit

let sum = 0;

for (let i = L; i <= R; i++) sum += arr[i];

But that’s O(n) per query — not scalable.

:rocket: Enter: Prefix Sums

One pass builds a prefix array:

js

CopyEdit

prefix[0] = arr[0];

for (let i = 1; i < arr.length; i++) {

prefix[i] = prefix[i - 1] + arr[i];

}

Now range sum is O(1):

js

CopyEdit

sum = prefix[R] - (L > 0 ? prefix[L - 1] : 0);

:sparkles: Range Updates with Difference Arrays

Need to add +10 to every number from index 2 to 5?

Instead of looping:

js

CopyEdit

diff[2] += 10;

diff[6] -= 10;

Apply a prefix sum to diff at the end to get the final array.

This is how we update ranges in O(1) time.

:wrench: Real-Life Applications

Used in:

Range-based scoring in games :video_game:

Bulk financial transactions :moneybag:

Efficient spreadsheet operations :bar_chart:

:exploding_head: Why It Matters

Prefix sums and diff arrays teach you to solve smarter, not harder.

They’re not just coding tricks — they’re a mindset:

Minimize repetition

Maximize efficiency

Think in preprocess → query cycles

:speech_balloon: Curious to Try?

Next time you’re about to loop through a subarray — pause.

There might be a better way waiting for you.

Let’s write code that thinks ahead.

#DSA #Arrays #CodingTips #BigO #LearningByDoing

100daysofcode lebanon-mug