Codepath

Nested Sum

JCSU Unit 2 Problem Set 1 (Click for link to problem statements)

Problem Highlights

  • 💡 Difficulty: Easy
  • Time to complete: 10 mins
  • 🛠️ Topics: Nested Loops, Iteration

1: U-nderstand

Understand what the interviewer is asking for by using test cases and questions about the problem.

  • Established a set (2-3) of test cases to verify their own solution later.
  • Established a set (1-2) of edge cases to verify their solution handles complexities.
  • Have fully understood the problem and have no clarifying questions.
  • Have you verified any Time/Space Constraints for this problem?
  • What is the goal of the problem?
    • The goal is to calculate the sum of all integers in a list of lists.
  • Are there constraints on input?
    • The input will always be a list of lists containing integers.

HAPPY CASE Input: nums = [ [1, 2, 3], [4, 5], [6] ] Output: 21 Explanation: The sum is calculated as 1 + 2 + 3 + 4 + 5 + 6 = 21.

EDGE CASE Input: nums = def nested_sum(nums): total = 0 # Initialize the total sum for sublist in nums: # Iterate through each sublist in the list for num in sublist: # Iterate through each number in the sublist total += num # Add the number to the total sum return total # Return the total sum--%23%23-5%3A-R-eview----%2A%2AReview%2A%2A-the-code-by-running-specific-example%28s%29-and-recording-values-%28watchlist%29-of-your-code%27s-variables-along-the-way.--Example-1%3A---Input%3A-nums-%3D-%5B-%5B1%2C-2%2C-3%5D%2C-%5B4%2C-5%5D%2C-%5B6%5D-%5D---Expected-Output%3A-21---Observed-Output%3A-21--Example-2%3A---Input%3A-nums-%3D-%5B%5B##-2:-M-atch----**Match**-what-this-problem-looks-like-to-known-categories-of-problems,-e.g.-Linked-List-or-Dynamic-Programming,-and-strategies-or-patterns-in-those-categories.--For-**nested-list-summing-problems**,-we-want-to-consider-the-following-approaches:----**Nested-Loops:**-Iterate-through-each-sublist-and-then-through-each-number-in-that-sublist-to-calculate-the-sum.---**Flattening-and-Summing:**-Flatten-the-list-of-lists-into-a-single-list-and-calculate-the-sum.--##-3:-P-lan----**Plan**-the-solution-with-appropriate-visualizations-and-pseudocode.--**General-Idea:**---Use-nested-loops-to-iterate-through-each-sublist-in-the-main-list,-then-iterate-through-each-element-of-the-sublist-and-add-the-values-to-a-running-total.--###-Steps:--1.-Initialize-a-variable-`total`-to-0.-2.-For-each-sublist-in-the-input-`nums`:-------For-each-number-in-the-sublist:-----------Add-the-number-to-`total`.-3.-Return-the-value-of-`total`.--##-4:-I-mplement----**Implement**-the-code-to-solve-the-algorithm.--

def nested_sum(nums):
    total = 0  # Initialize the total sum
    for sublist in nums:  # Iterate through each sublist in the list
        for num in sublist:  # Iterate through each number in the sublist
            total += num  # Add the number to the total sum
    return total  # Return the total sum
--##-5:-R-eview----**Review**-the-code-by-running-specific-example(s)-and-recording-values-(watchlist)-of-your-code's-variables-along-the-way.--Example-1:---Input:-nums-=-[-[1,-2,-3],-[4,-5],-[6]-]---Expected-Output:-21---Observed-Output:-21--Example-2:---Input:-nums-=-[[">]] Output: 0 Explanation: An empty list of lists results in a sum of 0. ## 2: M-atch > **Match** what this problem looks like to known categories of problems, e.g. Linked List or Dynamic Programming, and strategies or patterns in those categories. For **nested list summing problems**, we want to consider the following approaches: - **Nested Loops:** Iterate through each sublist and then through each number in that sublist to calculate the sum. - **Flattening and Summing:** Flatten the list of lists into a single list and calculate the sum. ## 3: P-lan > **Plan** the solution with appropriate visualizations and pseudocode. **General Idea:** Use nested loops to iterate through each sublist in the main list, then iterate through each element of the sublist and add the values to a running total. ### Steps: 1. Initialize a variable `total` to 0. 2. For each sublist in the input `nums`: - For each number in the sublist: - Add the number to `total`. 3. Return the value of `total`. ## 4: I-mplement > **Implement** the code to solve the algorithm.
def nested_sum(nums):
    total = 0  # Initialize the total sum
    for sublist in nums:  # Iterate through each sublist in the list
        for num in sublist:  # Iterate through each number in the sublist
            total += num  # Add the number to the total sum
    return total  # Return the total sum
## 5: R-eview > **Review** the code by running specific example(s) and recording values (watchlist) of your code's variables along the way. Example 1: - Input: nums = [ [1, 2, 3], [4, 5], [6] ] - Expected Output: 21 - Observed Output: 21 Example 2: - Input: nums = [[

  • Expected Output: 0
  • Observed Output: 0

6: E-valuate

Evaluate the performance of your algorithm and state any strong/weak or future potential work.

Assume n is the total number of integers in the nested lists.

  • Time Complexity: O(n) because we iterate through each number exactly once.
  • Space Complexity: O(1) because we only use a single variable to store the sum.
Fork me on GitHub