Rahul Gupta

Posted on

# LeetCode - 1 - Two Sum - Python

## Question:

Given an array of integers nums and an integer target, return indices of the two numbers such that they add up to target.

You may assume that each input would have exactly one solution, and you may not use the same element twice.

You can return the answer in any order.

Example 1:

Input: nums = [2,7,11,15], target = 9

Output: [0,1]

Explanation: Because nums[0] + nums[1] == 9, we return [0, 1].

Example 2:

Input: nums = [3,2,4], target = 6

Output: [1,2]

Example 3:

Input: nums = [3,3], target = 6

Output: [0,1]

`def two_sum(nums, target):

``````# Create a dictionary to store the indices of elements

num_indices = {}

# Iterate through the array

for i, num in enumerate(nums):

# Calculate the complement needed to reach the target

complement = target - num

# Check if the complement exists in the dictionary

if complement in num_indices:

# Return the indices of the current element and its complement

return [num_indices[complement], I]

# Store the index of the current element in the dictionary

num_indices[num] = I

# If no solution is found, return None

return None`
``````

Example usage:

nums1 = [2, 7, 11, 15]

target1 = 9

print(two_sum(nums1, target1)) # Output: [0, 1]

nums2 = [3, 2, 4]

target2 = 6

print(two_sum(nums2, target2)) # Output: [1, 2]

nums3 = [3, 3]

target3 = 6

print(two_sum(nums3, target3)) # Output: [0, 1]

This program defines a function two_sum that takes an array nums and a target integer target as input and returns the indices of the two numbers that add up to the target. It uses a dictionary to store the indices of elements and iterates through the array to find the complement of each element needed to reach the target. If the complement exists in the dictionary, it returns the indices of the current element and its complement. If no solution is found, it returns None. Finally, it demonstrates the usage of the function with example inputs.