DAY1_1
方法一 使用两层for循环 ,假设len(nums)=n,第一层遍历数组 range(0,n),第二层range(i,n),寻找和为target的两个数。
` def twoSum(self,nums,target):
"""
:type nums: List[int]
:type target: int
:rtype: List[int]
"""
#两次for循环
n=len(nums)
result=[]
for i in range(0,n):
for j in range(i,n):
if nums[i]+nums[j]==target and i!=j:
return [i,j]
方法二 使用一次循环 遍历数组,判断target-num[i] 是否存在于nums中,如果存在返回i,以及target-num[i]的索引。
注:获得数组中某元素的索引:nums.index()
def twoSum(self,nums,target):
for i in range(len(nums)):
if (target-nums[i]) in nums and i!=nums.index(target-nums[i]):
return [i,nums.index(target-nums[i])]
方法三 使用python中的字典 基本思想同方法二,只是此方法采用在字典中查找的方法,速度更快。
def twoSum(self,nums,target):
#python 字典
dict={}
for i in range (len(nums)):
a=target-nums[i]
if a in dict:
return [dict[a],i]
else:
dict[nums[i]]=i