给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。
你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。
示例:
给定 nums = [2, 7, 11, 15], target = 9
因为 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]
通过次数1,248,794提交次数2,543,879
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/two-sum
class Solution:
def twoSum(self, nums, target):
#存放解的列表
index_list = []
#按下标遍历该数组
for index1, num1 in enumerate(nums):
#求出符合当前值的补数
a_n = target - num1
#内层再遍历数组寻找该补树及其下标,每次从当前值的后一个元素开始遍历
for index2, num2 in enumerate(nums[index1+1:]):
#如果找到该值,将当前值的下标及其补数的下标追加到解列表
if num2 == a_n:
index_list.append(index1)
#由于本次遍历为当前值的后一个元素开始遍历,所以补数在原数组的下标为当前数组下标+当前值下标+1
index_list.append(index2+index1+1)
return index_list
sn = Solution()
r = sn.twoSum([3,3], 6)
print(r)