程序以查找列表中的任意两个数字,在Python中这些数字总计为k

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

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

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

  • temp_set:=一个新的集合

  • 对于以num为单位的每个num

    • 返回True

    • 如果num在temp_set中,则

    • 将(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
    猜你喜欢