两数之和
题目描述:

解法:
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
dict = {}
for i in range(len(nums)):
temp_num = target-nums[i]
if temp_num not in dict:
dict[nums[i]] = i
else:
return [dict[temp_num],i]
解说:

之所选用Python中的字典来存储,是因为dict内置操作的时间复杂度
| Operation | Big-O Efficiency | explain |
|---|---|---|
| copy | \(O(n)\) | 把所有的元素都复制一份 |
| get item | \(O(1)\) | |
| set item | \(O(1)\) | |
| delete item | \(O(1)\) | |
| contains (in) | \(O(1)\) | 维护了一个键值对,可以快速找到 |
| iteration | \(O(n)\) | |
| 查找字典中的元素,因为维护了一对键值对,所以使用\(O(1)\)复杂度找到数据。 |

浙公网安备 33010602011771号