python 函数 enumerate()
seasons = ['Spring', 'Summer', 'Fall', 'Winter']
list(enumerate(seasons)) [(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]
list(enumerate(seasons, start=1)) # 下标从 1 开始
[(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]
感谢leetcode中大神的分享
版本1
# V1
# class Solution(object):
# def twoSum(self, nums, target):
# """
# :type nums: List[int]
# :type target: int
# :rtype: List[int]
# """
# length = len(nums)
# for i in range(length-1):
# for j in range(i+1,length):
# if nums[i]+nums[j] == target:
# return [ i,j]
#V2
# class Solution:
# # @return a tuple, (index1, index2)
# # 8:42
# def twoSum(self, num, target):
# map = {}
# for i in range(len(num)):
# if num[i] not in map:
# map[target - num[i]] = i + 1
# else:
# return map[num[i]], i + 1
#
# return -1, -1
#V3
class Solution(object):
def twoSum(self, nums, target):
"""
:type nums: List[int]
:type target: int
:rtype: List[int]
"""
dic={}
for i, num in enumerate (nums):
if target - num in dic:
return dic[target-num],i
dic[num]=i
if __name__ == '__main__':
nums = [2, 7, 11, 15]
target = 9
solution = Solution()
result = solution.twoSum(nums,target)
print(result)