Leetcode | Two Sum | Python

Leetcode | Two Sum | Python

Join me as I conquer this challenge!

Hello everyone! I will be walking you through on how to solve Leetcode #1 Two Sum problem in Python3.

Problem Description

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.

Next, we are given 3 test case examples with the listed target goals.

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]

Constraints:

  • 2 <= nums.length <= 10<sup>4</sup>

  • -10<sup>9</sup> <= nums[i] <= 10<sup>9</sup>

  • -10<sup>9</sup> <= target <= 10<sup>9</sup>

  • Only one valid answer exists.

Solution walk-through

For this problem I will be using a Hash map. But wait.. what is a hash map?!

Hash maps or hash tables in python are a type of data structure which allows you to store their key-to-value pair. The hash function turns a key value into an index within an array, this grants you access to an index when inserting a value or fetching a value from the hash map.

To start off, you will need to map the value and index to the hashMap

hashMap = {} # val : index

Then, start a for loop which iterates through each value

for i, n in enumerate(nums):

Check to see if the pair is in the hashMap, if there is a diff return the solution

diff = target - n
if diff in hashMap:
    return [hashMap[diff], i]

Lastly, if the solution is not found it will iterate back to the for loop and update the hash map.

hashMap[n] = i

Full Solution

class Solution:
    def twoSum(self, nums: List[int], target: int) -> List[int]:

        hashMap = {} # val : index

        for i, n in enumerate(nums):

            diff = target - n

            if diff in hashMap:
                return [hashMap[diff], i]

            hashMap[n] = i

Select run to view test case results

That is all! Thanks for reading and following along. If you like this article please consider following me for more.