一.暴力法:
遍历每个元素 x,并查找是否存在一个值与 target−x 相等的目标元素
long = len(nums)
for head in range(long):
for tail in range(head+1,long):
if nums[tail] == target - nums[head]:
return head,tail
break
else:
continue
1.for循环用索引的时候,range(n)就是从0到n-1。
2.Python的for和c、java都不一样,类似shell
二、两遍哈希表
保持数组中的每个元素与其索引相互对应的最好方法是哈希表
n = len(nums)
for x in range(n):
a = target - nums[x]
if a in nums:
y = nums.index(a)
if x == y:
continue
else:
return x,y
break
else :
continue
1.由已知确定的量求未知量,本题把加变为减,用空间换时间
2.nums.index(a) :nums序列中值为a的下标
三:一遍哈希表
if len(nums)<=1:
return None
buff={}
for i in range(len(nums)):
if nums[i] in buff:
return [i,buff[nums[i]]]
else:
buff[target-nums[i]]=i
1.利用哈希表把差值存起来,然后在其中查找是否有需要的元素