Bird
Raised Fist0
DSA Javascriptprogramming~10 mins

Prefix Sum Array in DSA Javascript - Interactive Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to initialize the prefix sum array with the first element of the input array.

DSA Javascript
const prefixSum = [[1]];
Drag options to blanks, or click blank then click option'
Aarr[0]
Barr[1]
C0
Darr.length
Attempts:
3 left
💡 Hint
Common Mistakes
Using arr[1] instead of arr[0]
Starting with 0 instead of the first element
2fill in blank
medium

Complete the code to calculate the prefix sum for the current index inside the loop.

DSA Javascript
for (let i = 1; i < arr.length; i++) {
  prefixSum[i] = prefixSum[i - 1] [1] arr[i];
}
Drag options to blanks, or click blank then click option'
A+
B-
C*
D/
Attempts:
3 left
💡 Hint
Common Mistakes
Using subtraction instead of addition
Using multiplication or division which are incorrect here
3fill in blank
hard

Fix the error in the code to correctly compute the prefix sum array.

DSA Javascript
const prefixSum = [];
prefixSum[0] = arr[0];
for (let i = 1; [1]; i++) {
  prefixSum[i] = prefixSum[i - 1] + arr[i];
}
Drag options to blanks, or click blank then click option'
Ai <= arr.length - 1
Bi <= arr.length
Ci < arr.length - 1
Di < arr.length
Attempts:
3 left
💡 Hint
Common Mistakes
Using <= arr.length causes out-of-bounds error
Using < arr.length - 1 skips last element
4fill in blank
hard

Fill both blanks to create a function that returns the prefix sum array for a given input array.

DSA Javascript
function prefixSumArray(arr) {
  const prefixSum = [arr[0]];
  for (let i = 1; i [1] arr.length; i++) {
    prefixSum[i] = prefixSum[i - 1] [2] arr[i];
  }
  return prefixSum;
}
Drag options to blanks, or click blank then click option'
A<
B+
C-
D<=
Attempts:
3 left
💡 Hint
Common Mistakes
Using <= in loop condition causing errors
Using subtraction instead of addition
5fill in blank
hard

Fill all three blanks to create a function that returns the prefix sum array using map and reduce methods.

DSA Javascript
function prefixSumArray(arr) {
  let sum = 0;
  return arr.map(([1]) => {
    sum = sum [2] [3];
    return sum;
  });
}
Drag options to blanks, or click blank then click option'
Anum
B+
Di
Attempts:
3 left
💡 Hint
Common Mistakes
Using wrong parameter name
Using wrong operator
Using index instead of element

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