1. Two Sum with new solutions
⛳ Leetcode Overview
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]
📃 Analysis
The normal way is to use two for loops to find the two numbers that add up to the target. But with using the javascript inbuilt Object or Map data types, we can reduce the time complexity from O(n^2) to O(n)
tip
Separate the question into 4 parts
- Loop through the array
- Keep track of the difference between each number and the target
- Check if the difference exists in the Object/Map variable
- If it exists, return the index, otherwise, store the index with the current number as the key
✏ Code Editor
1. Option 1: Using two for loops
function twoSum(nums, target){
for(let i = 0; i < nums.length-1; i++){
for(let j = i+1; j < nums.length; j++){
if(nums[i] + nums[j] === target){
return [i, j]
}
}
}
}
2. Option 2: Using one for loop with an extra object variable
Live Editor
Result
Loading...
Option 3: Using one for loop with an extra Map variable
Live Editor
Result
Loading...