首页 > 解决方案 > 什么数字加起来k?

问题描述

我不知道该怎么做。给定一个数字列表和一个数字 k,返回列表中所有加起来为 k 的数字对。只通过列表一次。

例如,给定 [10, 15, 3, 7] 和 17 的 k。程序应返回 10 + 7。

您如何在只浏览一次清单的情况下订购和退回每一双。

标签: algorithmsortingsum

解决方案


使用一组来跟踪您所看到的内容。运行时间 O(N),空间:O(N)

def twoAddToK(nums, k):
  seen = set()
  N = len(nums)
  for i in range(N):
    if k - nums[i] in seen:
      return True
    seen.add(nums[i])  
  return False

推荐阅读