给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。
你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。
示例:
给定 nums = [2, 7, 11, 15], target = 9
因为 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/two-sum
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
如果 nums = [2,2,5,10,10] target =12 结果只有【0,4】【0,3】 好像原因主要是nums.index(target-nums[i]) 只能取第一个取到索引值 nums = [2,2,5,10,10] target =12 a = [] def func(nums,target): for i in range(len(nums)): if (target - nums[i]) in a: for x,y in enumerate(a): if y == target-nums[i]: yield [i, x] a.append(nums[i]) g =func(nums,target) print(list(g))
[[3, 0], [3, 1], [4, 0], [4, 1]]
原文:https://www.cnblogs.com/vincent-sh/p/13063902.html