Python程序:查找列表中两个数字之和等于k


假设我们有一个名为nums的数字列表,还有一个数字k,我们需要检查列表中是否存在两个数字加起来等于k。相同的元素不能重复使用。数字可以为负数或0。

因此,如果输入类似于nums = [45, 18, 9, 13, 12],k = 31,则输出将为True,因为18 + 13 = 31

为了解决这个问题,我们将遵循以下步骤:

  • temp_set := 一个新的集合
  • 对于nums中的每个数字num,执行以下操作:
    • 如果num在temp_set中,则:
      • 返回True
    • 将(k-num)添加到temp_set中
  • 返回False

让我们看看下面的实现,以便更好地理解:

示例

 在线演示

class Solution:
   def solve(self, nums, k):
      temp_set=set()
      for num in nums:
         if num in temp_set:
            return True
            temp_set.add(k-num)
      return False
ob = Solution()
nums = [45, 18, 9, 13, 12] k = 31 print(ob.solve(nums, k))

输入

[45, 18, 9, 13, 12], 31

输出

True

更新于: 2020年10月5日

755 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告