Python中的两个和
假设我们有一个整数数组。我们必须返回两个整数的索引,这样,如果将它们相加,我们将达到一个给定的特定目标。在这里,我们将采取一个假设,即数组中总是有一个唯一的解决方案,因此不会有针对同一目标的两组索引。
例如,假设数组类似于A=[2、8、12、15],目标总和为20。则它将返回索引1和2,因为A[1]+A[2]=20。
为了解决这个问题,我们将遍历数组的每个元素。因此,请按照以下步骤解决此问题。
定义一个映射以保存称为res的结果
对于索引i,范围为0到n–1(其中n是数组中的元素数)
返回res[target-A[i]]和i作为索引
如果目标−A[i]存在于res中
否则将我作为res[A[i]]−=i放入res
让我们看一下实现以获得更好的理解
示例
class Solution(object): def twoSum(self, nums, target): """ :type nums: List[int] :type target: int :rtype: List[int] """ required = {} for i in range(len(nums)): if target - nums[i] in required: return [required[target - nums[i]],i] else: required[nums[i]]=i input_list = [2,8,12,15] ob1 = Solution() print(ob1.twoSum(input_list, 20))
输入值
input_list = [2,8,12,15] target = 20
输出结果
[1, 2]