Two Sum

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.

Case 1:

Input: nums = [2,7,11,15], target = 9
Output: [0,1]
Explanation: Because nums[0] + nums[1] == 9, we return [0, 1].

Case 2:

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

Case 3:

Input: nums = [3,3], target = 6
Output: [0,1]

Constraints

2 <= nums.length <= 104
-109 <= nums[i] <= 109
-109 <= target <= 109
Only one valid answer exists.

Solution

  • Brute-force algorithms

It uses a nested loop to iterate through each element of the array and check if there is another element in the array that can be added to it to equal the target number.

const twoSum = (nums: number[], target: number) => {
  for (let i = 0; i < nums.length; i++) {
    for (let j = i + 1; j < nums.length; j++) {
      if (nums[i] + nums[j] === target) return [i, j];
    }
  }
};
  • Hash map

The function uses a hash map to keep track of the previously seen numbers in the array and their indices.

const twoSum = (nums: number[], target: number) => {
  const map = new Map();
  for (let i = 0; i < nums.length; i++) {
    const complement = target - nums[i];
    if (map.has(complement)) {
      return [map.get(complement), i];
    }
    map.set(nums[i], i);
  }
};

Related Posts

Medium
Medium
LeetCode No. 3
Hash Table
String
Sliding Window
Feb 12, 2024
Hard
Hard
LeetCode No. 4
Array
Binary Search
Divide And Conquer
Feb 12, 2024
Medium
Medium
LeetCode No. 15
Array
Two Pointers
Sorting
May 25, 2023
Medium
Medium
LeetCode No. 39
Array
Backtracking
May 29, 2023
Medium
Medium
LeetCode No. 78
Array
Backtracking
Bit Manipulation
May 26, 2023