原题链接https://leetcode.com/problems/two-sum/
Given an array of integers, return indices of the two numbers such that they add up to a specific target.
You may assume that each input would have exactly one solution, and you may not use the same element twice.
Example:
Given nums = [2, 7, 11, 15], target = 9,
Because nums[0] + nums[1] = 2 + 7 = 9,
return [0, 1].
遍历数组中idx,num,若字典中没有对应的target-num值,则在字典中添加k:v -> target-num:idx
若有其对应的target-num值,则返回当前索引和字典中target-num对应的值.
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
if len(nums) < 2:
return []
dicts = {}
for i, num in enumerate(nums):
if num in dicts:
return [i, dicts[num]]
else:
dicts[target-num] = i
return []