1. Two Sum LeetCode Solution
In this guide we will provide 1. Two Sum LeetCode Solution with best time and space complexity. The solution to Two Sum problem is provided in various programming languages like C++, Java and python. This will be helpful for you if you are preparing for placements, hackathon, interviews or practice purposes. The solutions provided here are very easy to follow and with detailed explanations.
Table of Contents
- Problem Statement
- Two Sum solution in C++
- Two Sum soution in Java
- Two Sum solution Python
- Additional Resources
Problem Statement of Two Sum
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]
Constraints:
2 <= nums.length <= 104
-109 <= nums[i] <= 109
-109 <= target <= 109
Only one valid answer exists.
Follow-up: Can you come up with an algorithm that is less than O(n2) time complexity?
Complexity Analysis
- Time Complexity: O(n)
- Space Complexity: O(n)
1. Two Sum LeetCode Solution in C++
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
unordered_map<int, int> numToIndex;
for (int i = 0; i < nums.size(); ++i) {
if (const auto it = numToIndex.find(target - nums[i]);
it != numToIndex.cend())
return {it->second, i};
numToIndex[nums[i]] = i;
}
throw;
}
};
/* code provided by PROGIEZ */
1. Two Sum LeetCode Solution in Java
class Solution {
public int[] twoSum(int[] nums, int target) {
Map<Integer, Integer> numToIndex = new HashMap<>();
for (int i = 0; i < nums.length; ++i) {
if (numToIndex.containsKey(target - nums[i]))
return new int[] {numToIndex.get(target - nums[i]), i};
numToIndex.put(nums[i], i);
}
throw new IllegalArgumentException();
}
}
// code provided by PROGIEZ
1. Two Sum LeetCode Solution in Python
class Solution:
def twoSum(self, nums: list[int], target: int) -> list[int]:
numToIndex = {}
for i, num in enumerate(nums):
if target - num in numToIndex:
return numToIndex[target - num], i
numToIndex[num] = i
#code by PROGIEZ
Additional Resources
- Explore all Leetcode problems solutions at Progiez here
- Explore all problems on Leetcode website here
Feel free to give suggestions! Contact Us