假设我们有一个称为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