Given an array of integers, return indicesof 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.
一个整数数组中两个元素可以相加得到给定的数值,每次输入只得到1组输出,不能重复使用数组中的数。
例:
Given nums = [2, 7, 11, 15]
target = 9
Because nums[0] + nums[1] = 2 + 7 = 9
return [0,1]
type nums: List[int]
type target: int
rtype: List[int]
BF: 时间复杂度 O(n^2)
class Solution:
def twoSum(self, nums, target):
#嵌套循环遍历列表,元素相加是否符合target值
length = len(nums)
for index in range(length) :
for n in range(index+1,length):
if(nums[index] + nums[n] == target):
return (index,n)
哈希表:时间复杂度O(n)
class Solution:
def twoSum(self, nums, target):
dict = {} #字典是哈希表在python中的实现
for index in range(len(nums)):
left = target - nums[index] #向字典中检查是否有left的值
if left in dict: #一边检索一边向空字典中添加元素,字典中顺序与nums中一致
return (dict[left], index)
else:
dict[nums[index]] = index #添加元素,nums转化为字典