Bird
Raised Fist0
DSA Javascriptprogramming~20 mins

Prefix Sum Array in DSA Javascript - Practice Problems & Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Prefix Sum Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
What is the output of this prefix sum array code?
Consider the following JavaScript code that creates a prefix sum array from an input array. What will be printed?
DSA Javascript
const arr = [2, 4, 6, 8];
const prefixSum = [];
prefixSum[0] = arr[0];
for (let i = 1; i < arr.length; i++) {
  prefixSum[i] = prefixSum[i - 1] + arr[i];
}
console.log(prefixSum);
A[2, 4, 6, 8]
B[2, 6, 12, 20]
C[2, 6, 10, 18]
D[0, 2, 6, 12]
Attempts:
2 left
💡 Hint
Remember each element in prefixSum is the sum of all elements up to that index in arr.
❓ Predict Output
intermediate
2:00remaining
What is the value of prefixSum[3] after running this code?
Given the code below, what is the value stored at prefixSum[3]?
DSA Javascript
const arr = [1, 3, 5, 7, 9];
const prefixSum = [0];
for (let i = 0; i < arr.length; i++) {
  prefixSum[i + 1] = prefixSum[i] + arr[i];
}
console.log(prefixSum[3]);
A9
B16
C6
D8
Attempts:
2 left
💡 Hint
prefixSum[3] is sum of arr[0] + arr[1] + arr[2]
🔧 Debug
advanced
2:00remaining
Why does this prefix sum code produce incorrect results?
Look at this code snippet. It tries to build a prefix sum array but the output is wrong. What is the bug?
DSA Javascript
const arr = [1, 2, 3, 4];
const prefixSum = [];
for (let i = 0; i < arr.length; i++) {
  prefixSum[i] = prefixSum[i - 1] + arr[i];
}
console.log(prefixSum);
Aarr[i] is not added correctly because of wrong index
BThe loop should start from i = 1 instead of 0
CprefixSum[-1] is undefined on first iteration causing NaN values
DprefixSum array is not initialized with zeros
Attempts:
2 left
💡 Hint
Check what happens when i = 0 and prefixSum[i - 1] is accessed.
🚀 Application
advanced
2:00remaining
How to find sum of elements between indices 2 and 5 using prefix sum array?
Given a prefix sum array prefixSum where prefixSum[i] is sum of elements from index 0 to i-1 in original array, how do you find sum of elements from index 2 to 5 (inclusive)?
AprefixSum[6] - prefixSum[2]
BprefixSum[5] - prefixSum[2]
CprefixSum[5] + prefixSum[2]
DprefixSum[6] + prefixSum[2]
Attempts:
2 left
💡 Hint
Sum from i to j = prefixSum[j+1] - prefixSum[i]
🧠 Conceptual
expert
2:00remaining
What is the time complexity to build and query prefix sum array for range sums?
If you have an array of size n, what is the time complexity to build a prefix sum array and then answer m queries asking for sum of elements between two indices?
ABuilding: O(n^2), Querying: O(1) per query
BBuilding: O(1), Querying: O(n) per query
CBuilding: O(n), Querying: O(n) per query
DBuilding: O(n), Querying: O(1) per query
Attempts:
2 left
💡 Hint
Think about how prefix sums are computed and how queries use them.

Practice

(1/5)
1. What does a prefix sum array represent for a given array arr?
easy
A. An array where each element is the sum of all elements from the start up to that index in arr.
B. An array where each element is the product of all elements from the start up to that index in arr.
C. An array where each element is the difference between consecutive elements in arr.
D. An array where each element is the maximum value found in arr up to that index.

Solution

  1. Step 1: Understand prefix sum array definition

    A prefix sum array stores sums of elements from the start of the original array up to each index.
  2. Step 2: Compare options with definition

    Only An array where each element is the sum of all elements from the start up to that index in arr. correctly describes this sum accumulation behavior.
  3. Final Answer:

    An array where each element is the sum of all elements from the start up to that index in arr. -> Option A
  4. Quick Check:

    Prefix sum = cumulative sum [OK]
Hint: Prefix sum means cumulative addition from start [OK]
Common Mistakes:
  • Confusing prefix sum with product or max
  • Thinking prefix sum stores differences
  • Assuming prefix sum stores original values
2. Which of the following JavaScript code snippets correctly initializes a prefix sum array prefix for an input array arr?
easy
A. const prefix = []; for(let i=0; i<arr.length; i++) { prefix[i] = arr[i] * prefix[i-1]; }
B. const prefix = [0]; for(let i=1; i<arr.length; i++) { prefix[i] = prefix[i-1] + arr[i]; }
C. const prefix = [arr[0]]; for(let i=1; i<arr.length; i++) { prefix[i] = prefix[i-1] + arr[i]; }
D. const prefix = []; for(let i=0; i<arr.length; i++) { prefix[i] = arr[i] - prefix[i-1]; }

Solution

  1. Step 1: Check initialization of prefix sum array

    Prefix sum starts with first element of arr, so prefix[0] = arr[0].
  2. Step 2: Verify loop logic for prefix sums

    Each prefix[i] = prefix[i-1] + arr[i] correctly accumulates sums.
  3. Final Answer:

    const prefix = [arr[0]]; for(let i=1; i<arr.length; i++) { prefix[i] = prefix[i-1] + arr[i]; } -> Option C
  4. Quick Check:

    Initialize with arr[0], then add previous prefix [OK]
Hint: Start prefix with arr[0], then add previous sums [OK]
Common Mistakes:
  • Starting prefix with 0 instead of arr[0]
  • Using multiplication instead of addition
  • Accessing prefix[-1] which is undefined
3. What will be the output of the following JavaScript code?
const arr = [2, 4, 6, 8];
const prefix = [arr[0]];
for(let i = 1; i < arr.length; i++) {
  prefix[i] = prefix[i-1] + arr[i];
}
console.log(prefix);
medium
A. [2, 6, 10, 18]
B. [2, 4, 6, 8]
C. [2, 8, 14, 22]
D. [2, 6, 12, 20]

Solution

  1. Step 1: Calculate prefix sums step-by-step

    prefix[0] = 2; prefix[1] = 2 + 4 = 6; prefix[2] = 6 + 6 = 12; prefix[3] = 12 + 8 = 20.
  2. Step 2: Confirm final prefix array

    The prefix array is [2, 6, 12, 20].
  3. Final Answer:

    [2, 6, 12, 20] -> Option D
  4. Quick Check:

    Sum accumulates correctly [OK]
Hint: Add current element to previous prefix sum [OK]
Common Mistakes:
  • Adding elements incorrectly or skipping first element
  • Confusing prefix array with original array
  • Off-by-one errors in loop
4. Identify the error in the following code that attempts to create a prefix sum array:
const arr = [1, 3, 5, 7];
const prefix = [];
for(let i = 0; i < arr.length; i++) {
  prefix[i] = prefix[i-1] + arr[i];
}
console.log(prefix);
medium
A. prefix array is not initialized with first element, causing prefix[-1] to be undefined.
B. The loop should start from i = 1 instead of 0.
C. The code uses addition instead of multiplication.
D. The array arr is empty, so prefix will be empty.

Solution

  1. Step 1: Analyze prefix[-1] usage at i=0

    At i=0, prefix[i-1] is prefix[-1], which is undefined, causing NaN result.
  2. Step 2: Fix initialization to avoid undefined

    Initialize prefix[0] = arr[0] before loop or handle i=0 separately.
  3. Final Answer:

    prefix array is not initialized with first element, causing prefix[-1] to be undefined. -> Option A
  4. Quick Check:

    Accessing prefix[-1] causes undefined [OK]
Hint: Initialize prefix[0] before loop to avoid undefined [OK]
Common Mistakes:
  • Starting loop at 0 without initializing prefix[0]
  • Ignoring undefined prefix[-1] access
  • Assuming prefix[-1] is zero automatically
5. Given an array arr = [3, 1, 4, 1, 5], how can you use a prefix sum array to efficiently find the sum of elements between indices 1 and 3 (inclusive)?
hard
A. Calculate prefix sums, then subtract prefix[0] from prefix[4].
B. Calculate prefix sums, then subtract prefix[0] from prefix[3].
C. Calculate prefix sums, then subtract prefix[0] from prefix[2].
D. Calculate prefix sums, then subtract prefix[1] from prefix[3].

Solution

  1. Step 1: Build prefix sum array for arr

    prefix = [3, 4, 8, 9, 14] where prefix[i] = sum of arr[0..i].
  2. Step 2: Calculate sum from index 1 to 3

    Sum = prefix[3] - prefix[0] = 9 - 3 = 6 (elements 1,4,1).
  3. Final Answer:

    Calculate prefix sums, then subtract prefix[0] from prefix[3]. -> Option B
  4. Quick Check:

    Sum(1 to 3) = prefix[3] - prefix[0] [OK]
Hint: Sum(i to j) = prefix[j] - prefix[i-1] [OK]
Common Mistakes:
  • Subtracting prefix[i] instead of prefix[i-1]
  • Using wrong indices for subtraction
  • Not building prefix sums first
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard