Python
Python

 

 

The Two Sum problem is a classic algorithmic challenge where the goal is to find two numbers in an array that add up to a specific target sum. This implementation uses a hash map (dictionary in Python) to achieve an efficient solution.

Program Structure

  1. Function Definition: We define a function two_sum that takes a list of integers nums and an integer target.
  2. Hash Map Initialization: We create an empty dictionary to store the numbers and their corresponding indices.
  3. Iteration: We loop through the list of numbers, and for each number, we check if the complement (i.e., target - number) exists in the dictionary.
  4. Result: If the complement exists, we return the indices of the two numbers. If not, we add the current number and its index to the dictionary.

Python Code


def two_sum(nums, target):
    """
    Find two numbers in `nums` that add up to `target`.

    Parameters:
    nums (list): A list of integers.
    target (int): The target sum.

    Returns:
    list: Indices of the two numbers that add up to the target, or an empty list if no solution exists.
    """
    # Create a hash map to store number and its index
    num_map = {}

    # Iterate over the list of numbers
    for index, number in enumerate(nums):
        # Calculate the complement
        complement = target - number

        # Check if complement exists in the hash map
        if complement in num_map:
            return [num_map[complement], index]

        # Add the number and its index to the hash map
        num_map[number] = index

    # Return an empty list if no solution is found
    return []

# Example usage
nums = [2, 7, 11, 15]
target = 9
result = two_sum(nums, target)
print(f"Indices of the numbers that add up to {target}: {result}")

Explanation

The function two_sum works as follows:

  • It initializes an empty dictionary num_map to keep track of numbers and their indices.
  • As it iterates through the list nums, it calculates the complement for each number.
  • If the complement is found in num_map, it means we have identified the two numbers that sum up to the target. The function then returns their indices.
  • If the complement is not found, it adds the current number and its index to num_map for future reference.

Complexity Analysis

The time complexity of this solution is O(n), where n is the number of elements in the input list nums. The space complexity is also O(n) due to the storage of elements in the hash map.

 

Explanation of the Code:

  • Function Definition: The two_sum function accepts a list of integers (nums) and a target integer (target).
  • Hash Map: A dictionary (num_map) is used to store each number and its index as we iterate through the list.
  • Iteration: The program checks for the complement of each number (i.e., target - number) and looks it up in the hash map.
  • Return Indices: If the complement is found, the indices of both numbers are returned; otherwise, the current number and its index are added to the hash map.
  • Output Example: An example is provided to demonstrate how to use the function and print the result.

By Aditya Bhuyan

I work as a cloud specialist. In addition to being an architect and SRE specialist, I work as a cloud engineer and developer. I have assisted my clients in converting their antiquated programmes into contemporary microservices that operate on various cloud computing platforms such as AWS, GCP, Azure, or VMware Tanzu, as well as orchestration systems such as Docker Swarm or Kubernetes. For over twenty years, I have been employed in the IT sector as a Java developer, J2EE architect, scrum master, and instructor. I write about Cloud Native and Cloud often. Bangalore, India is where my family and I call home. I maintain my physical and mental fitness by doing a lot of yoga and meditation.

Leave a Reply

Your email address will not be published. Required fields are marked *

error

Enjoy this blog? Please spread the word :)