LeetCode Problems
In this tutorial we will solve 1. Two Sum problem from leetcode.
Reference: 1. Two Sum
In this problem we have an input integer array nums
and we have an integer target
. We have to find the indices of two numbers in the given array that add up to target and we cannot use the number at a given index more than once. We are also told in the problem statement that the input would always have exactly one solution.
Example from leetcode.
Example 1:
Input: nums = [2,7,11,15], target = 9
Output: [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^4
-10^9 <= nums[i] <= 10^9
-10^9 <= target <= 10^9
In example 1, we can see number at index 0 and 1 adds up to 9.
In example 2, we can see number at index 1 and 2 adds up to 6.
And in example 3, we have number at index 0 and 1 adding up to 6.
To solve this problem we can take help of hash map and save the number and its index as we traverse the input array.
Input: nums = [2,7,11,15], target = 9
hashmap = {}
index = 0 1 2 3
nums = [2, 7, 11, 15]
^
neededNumber = target - currentNumber
= 9 - 2
= 7
7 is not present in the hashmap, add current number 2 and its index 0.
hashmap = {
2: 0
}
index = 0 1 2 3
nums = [2, 7, 11, 15]
^
neededNumber = target - currentNumber
= 9 - 7
= 2
2 is present in the hashmap, fetch the index of 2 and return the result.
JavaScript
/**
* @param {number[]} nums
* @param {number} target
* @return {number[]}
*/
var twoSum = function(nums, target) {
let hm = new Map();
for(let i = 0; i < nums.length; i++) {
const currentNumber = nums[i];
const neededNumber = target - currentNumber;
const indexOfNeededNumberIfExists = hm.get(neededNumber);
if (indexOfNeededNumberIfExists !== undefined) {
return [indexOfNeededNumberIfExists, i];
}
hm.set(currentNumber, i);
}
};
Time complexity: O(n)
In the worst case, we will traverse the whole array and if there are n elements then our time complexity will be O(n).
Space complexity: O(n)
In the worst case, our hash map will save n elements. Thus the space complexity will be O(n).
ADVERTISEMENT