Bird
Raised Fist0
DSA Cprogramming~5 mins

Prefix Sum Array in DSA C - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is a Prefix Sum Array?
A Prefix Sum Array is a new array where each element at index i is the sum of all elements from the start up to i in the original array.
Click to reveal answer
beginner
How do you compute the prefix sum array for an input array?
Start with the first element same as original. For each next element, add the current original element to the previous prefix sum element.
Click to reveal answer
intermediate
Why use a Prefix Sum Array?
It helps quickly find the sum of any subarray by subtracting two prefix sums, reducing repeated addition.
Click to reveal answer
beginner
What is the time complexity to build a prefix sum array of size n?
O(n), because you calculate each prefix sum element once by adding the previous prefix sum and current element.
Click to reveal answer
intermediate
How to find the sum of elements between indices i and j using prefix sums?
Sum = prefixSum[j] - prefixSum[i-1] (if i > 0), else prefixSum[j] if i == 0.
Click to reveal answer
What does the element at index 3 in a prefix sum array represent?
ASum of elements from index 0 to 3 in original array
BValue of element at index 3 in original array
CSum of elements from index 3 to end in original array
DDifference between elements at index 3 and 2
What is the time complexity to answer sum queries using prefix sums after building it?
AO(log n)
BO(1)
CO(n)
DO(n^2)
If prefixSum[4] = 15 and prefixSum[1] = 5, what is the sum of elements from index 2 to 4?
A15
B20
C5
D10
Which of these is NOT a benefit of prefix sum arrays?
AFaster subarray sum queries
BSimple to build in O(n)
CLess memory usage than original array
DAvoids repeated addition
What is the prefix sum of the array [2, 4, 6]?
A[2, 6, 12]
B[2, 4, 6]
C[2, 8, 14]
D[0, 2, 6]
Explain how to build a prefix sum array from a given array.
Think of adding one element at a time to the sum of all before it.
You got /3 concepts.
    Describe how prefix sum arrays help in finding the sum of any subarray quickly.
    Subtract sums to get subarray sum.
    You got /3 concepts.

      Practice

      (1/5)
      1. What is the main purpose of a prefix sum array in data structures?
      easy
      A. To quickly find the sum of elements in any subarray
      B. To sort the array elements in ascending order
      C. To store the product of all elements
      D. To reverse the array efficiently

      Solution

      1. Step 1: Understand prefix sum array definition

        A prefix sum array stores sums of elements from the start up to each index.
      2. Step 2: Identify its use

        This allows quick calculation of sums for any subarray by subtracting prefix sums.
      3. Final Answer:

        To quickly find the sum of elements in any subarray -> Option A
      4. Quick Check:

        Prefix sum = fast subarray sums [OK]
      Hint: Prefix sums help find subarray sums fast [OK]
      Common Mistakes:
      • Confusing prefix sum with sorting
      • Thinking it stores products
      • Assuming it reverses arrays
      2. Which of the following is the correct way to initialize a prefix sum array prefix for an integer array arr of size n in C?
      easy
      A. prefix[0] = arr[1]; for(int i=1; i
      B. prefix[0] = arr[0]; for(int i=1; i
      C. for(int i=0; i
      D. prefix[0] = 0; for(int i=1; i<=n; i++) prefix[i] = prefix[i-1] + arr[i];

      Solution

      1. Step 1: Initialize first prefix element

        Set prefix[0] to arr[0] to start sums correctly.
      2. Step 2: Loop from 1 to n-1 adding previous prefix and current arr

        Use prefix[i] = prefix[i-1] + arr[i] for correct cumulative sums.
      3. Final Answer:

        prefix[0] = arr[0]; for(int i=1; i -> Option B
      4. Quick Check:

        Start at arr[0], add cumulatively [OK]
      Hint: Start prefix with arr[0], then add cumulatively [OK]
      Common Mistakes:
      • Starting prefix at 0 and indexing arr out of bounds
      • Copying arr directly without summing
      • Using wrong starting index for arr
      3. Given the array arr = {2, 4, 6, 8}, what is the prefix sum array after running the code:
      int prefix[4];
      prefix[0] = arr[0];
      for(int i = 1; i < 4; i++) {
          prefix[i] = prefix[i-1] + arr[i];
      }
      medium
      A. [0, 2, 6, 12]
      B. [2, 4, 6, 8]
      C. [2, 6, 12, 20]
      D. [2, 8, 14, 22]

      Solution

      1. Step 1: Calculate prefix[0]

        prefix[0] = arr[0] = 2
      2. Step 2: Calculate prefix sums for i=1 to 3

        prefix[1] = 2 + 4 = 6, prefix[2] = 6 + 6 = 12, prefix[3] = 12 + 8 = 20
      3. Final Answer:

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

        Sum accumulates: 2, 6, 12, 20 [OK]
      Hint: Add current element to previous prefix sum [OK]
      Common Mistakes:
      • Confusing prefix sums with original array
      • Starting sums from zero incorrectly
      • Adding wrong elements in loop
      4. Identify the error in the following code snippet that attempts to create a prefix sum array for arr of size n:
      int prefix[n];
      prefix[0] = 0;
      for(int i = 1; i < n; i++) {
          prefix[i] = prefix[i-1] + arr[i];
      }
      medium
      A. prefix[0] should be initialized to arr[0], not 0
      B. Loop should start from i = 0, not 1
      C. Array prefix should be of size n+1
      D. The code will cause a runtime error

      Solution

      1. Step 1: Check prefix[0] initialization

        prefix[0] must hold arr[0] to start sums correctly, not zero.
      2. Step 2: Analyze loop correctness

        Loop starting at 1 is correct if prefix[0] is set properly.
      3. Final Answer:

        prefix[0] should be initialized to arr[0], not 0 -> Option A
      4. Quick Check:

        prefix[0] = arr[0] starts sums right [OK]
      Hint: Initialize prefix[0] with arr[0], not zero [OK]
      Common Mistakes:
      • Setting prefix[0] to zero causes wrong sums
      • Starting loop at wrong index
      • Assuming prefix array size must be n+1
      5. You have an array arr = {3, 1, 4, 1, 5, 9, 2}. Using a prefix sum array, how would you efficiently find the sum of elements from index 2 to 5 (inclusive)?
      hard
      A. Calculate prefix[5] + prefix[2]
      B. Sum elements from arr[2] to arr[5] directly every time
      C. Use prefix[6] - prefix[2] to get the sum
      D. Calculate prefix[5] - prefix[1] after building prefix sums

      Solution

      1. Step 1: Build prefix sum array

        prefix[i] = sum of arr[0] to arr[i]. For example, prefix[5] = sum of arr[0..5].
      2. Step 2: Calculate sum from index 2 to 5

        Sum = prefix[5] - prefix[1], because prefix[1] = sum of arr[0..1].
      3. Final Answer:

        Calculate prefix[5] - prefix[1] after building prefix sums -> Option D
      4. Quick Check:

        Sum(i..j) = prefix[j] - prefix[i-1] [OK]
      Hint: Sum subarray = prefix[end] - prefix[start-1] [OK]
      Common Mistakes:
      • Adding prefix sums instead of subtracting
      • Using wrong indices for prefix subtraction
      • Summing elements directly ignoring prefix sums
      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