#题目自带的一行什么class Solution的代码,我试试全删了会怎样,发现没关系呵呵
#更新:不能乱删东西,题目已经给出了numbers和target并且指明了返回值是一个int型的列表
class Solution:
def twoSum(self , numbers: List[int], target: int) -> List[int]:
res = [];res1=[]
for i in range(len(numbers)-1):
res = [i+1] #本题的数组下标是从1开始的
for j in range(i+1,len(numbers)):
if numbers[i] + numbers[j] == target:
res.append(j+1)
return res
#上述方法会超时,所以还得用下面的方法,哈希表方法:
class Solution:
def twoSum(self , numbers: List[int], target: int) -> List[int]:
res = []
#创建哈希表,两元组分别表示值、下标
hash = dict()
#在哈希表中查找target-numbers[i]
for i in range(len(numbers)) :
temp = target - numbers[i]
#若是没找到,将此信息计入哈希表
if temp not in hash:
hash[numbers[i]] = i
else:
#哈希表中记录的是之前的数字,所以该索引比当前小
res.append(hash[temp] + 1)
res.append(i + 1)
break
return res #后几句也可以写成return [hash[temp] + 1,i+1]