DEV Community

Arpan Adhikari
Arpan Adhikari

Posted on

Leetcode Two Sum Problem | DSA | Python

Leetcode Two Sum Problem link: https://leetcode.com/problems/two-sum/

I have tried to explain both the bruteforce approach as well as the optimal approach. Easy two sum problem solution. If you are preparing for DSA rounds or for SDE interview then this is for you.If you have any queries feel free to leave a comment.

Problem

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]

Enter fullscreen mode Exit fullscreen mode

Solution 1 : [Bruteforce Method]

from typing import List
   def twoSum(self, nums: List[int], target: int) -> List[int]:
        for i in range(len(nums)):
            for j in range(i, len(nums)):
                if i!=j:
                    if nums[i] + nums[j] == target:
                        return [i, j]
Enter fullscreen mode Exit fullscreen mode

Solution 2 : [Optimal Solution]

from typing import List
 def twoSum(list: List[int], target: int) -> List[int]:
    if len(list) <= 1:
        return 'Please pass an array with atleast two elements'
    hashTable = {}
    for i in range(len(list)):
        complement =  target  - list[i]
        if complement in hashTable:
            return [list.index(complement), i]
        hashTable[list[i]] = list[i]
Enter fullscreen mode Exit fullscreen mode

I have created a video explaining the solution.

.

Top comments (0)