語言:python3
v1:輪詢
def twoSum(self, nums, target):
"""
:type nums: List[int]
:type target: int
:rtype: List[int]
"""
for i in range(len(nums)):
for j in range(i+1, len(nums)):
if nums[i] + nums[j] == target:
return [i,j]
結果:超時了,提交失敗
v2:建立字典,循環字典
class Solution:
def twoSum(self, nums, target):
"""
:type nums: List[int]
:type target: int
:rtype: List[int]
"""
d = {}
for i in range(len(nums)):
if not nums[i] in d:
d[nums[i]] = i #保存數組位置信息
if target - nums[i] in d:
if d[target - nums[i]] < i: #防止 6-3=3的情況
return [d[target - nums[i]], i]
總結:字典映射結構比for循環效率更