1. Two Sum
EasyLeetCodeGiven 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: Becausenums[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 <= 10^4
-10^9 <= nums[i] <= 10^9
-10^9 <= target <= 10^9
- Only one valid answer exists.
How to solve the problem
- Brute Force
python
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
for i in range(len(nums)):
for j in range(len(nums)):
if nums[i] + nums[j] == target:
return [i,j]
- HashMap
python
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
saveDict = {}
for i, num in enumerate(nums):
remainder = target - num
if remainder in saveDict:
return [saveDict[remainder], i]
saveDict[num] = i
Complexity
- Brute Force: Time complexity: O(n^2), Space complexity: O(1)
- HashMap: Time complexity: O(n), Space complexity: O(n)
Comments
No comments yet. Be the first to comment!