LeetCode1 Two Sum
Author: Stefan Su
Create time: 2022-10-31 12:45:10
Location: New York City, NY, USA
Description Easy
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]
Constrains
2 <= nums.length <= 10
4-10
9<= nums[i] <= 10
9-10
9<= target <= 10
9- Only one valid answer exists
Analysis
Use a for loop to go through all elements in the nums
, and check current value and target - current value
both in the unordered hash map record
or not. If in it, return [current index, record[target - value of current index]]
. If not, record[value of current index] = current index
.
Solution
- unordered hash map
class Solution(object):
def twoSum(self, nums, target):
"""
:type nums: List[int]
:type target: int
:rtype: List[int]
"""
record = dict()
# It's more convenient to use enumeration, you don't need to
# go through the index to get the value of the current position
for index, value in enumerate(nums):
if target - value not in record:
record[value] = index
else:
return [index, record[target - value]]
Hopefully, this blog can inspire you when solving LeetCode1. For any questions, please comment below.