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]