1. 题目描述
2. 代码
1 class Solution: 2 def twoSum(self, nums: 'List[int]', target: int) -> 'List[int]': 3 s = {} 4 for i in range(len(nums)): 5 n = nums[i] 6 cop = target - n 7 if cop in s.keys(): 8 return [s[cop],i] 9 s[nums[i]] = i 10 return []
思路: 遍历数组, 若target与当前值的差在字典s中, 则返回差值的索引和当前遍历的索引.
若target与当前值的差不在字典s中, 则把当前遍历数组的值和索引更新到字典s中.
3. 语法整理
3.1 字典
1 d = {key1 : value1, key2 : value2 }
3.2 访问字典的值: 把相应的键放入到方括号中
1 dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'} 2 print ("dict['Name']: ", dict['Name']) 3 print ("dict['Age']: ", dict['Age'])
1 dict['Name']: Runoob 2 dict['Age']: 7
3.3 修改字典
1 dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'} 2 3 dict['Age'] = 8 # 更新 Age 4 dict['School'] = "菜鸟教程" # 添加信息
3.4 字典keys()方法: 以列表返回一个字典所有的键.
1 dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'} 2 print(dict.keys())
1 dict_keys(['Name', 'Age', 'Class'])
补充自己写的一种方法,通过2个循环实现
1 class Solution: 2 def twoSum(self, nums: List[int], target: int) -> List[int]: 3 n = len(nums) 4 for i in range(n-1): 5 for j in range(i+1,n): 6 if nums[i] + nums[j] == target: 7 return [i,j]