1. 程式人生 > 實用技巧 >LeetCode 1 _ 兩數之和

LeetCode 1 _ 兩數之和

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'])