问题描述:
Given nums = [2, 7, 11, 15], target = 9,
Because nums[0] + nums[1] = 2 + 7 = 9,
return [0, 1]
注:就是给定一个数组列表 nums,给定一个值 target 找出列表中两个和为target的元素的索引。
解法1:
def twoSum(self, nums, target):
lt=[]
n=0
for i in nums:
n+=1
for k in nums[n:]:
if i+k==target:
lt.extend(nums.index(i))
lt.extend(nums.index(k))
return list
解法2:
def twoSum(self, nums, target):
lt=[]
a = {}
for index, value in enumerate(nums):
if target - value in a:
lt.extend([a[target - value], index])
else:
a[value] =index
return lt
内置函数 enumerate 用法:
enumerate(sequence, [start=0])
参数
- sequence -- 一个序列、迭代器或其他支持迭代对象。
- start -- 下标起始位置。
返回值
返回 enumerate(枚举) 对象。
一般与for 循环连用: for index,value in enumerate(list):