Suppose we have a list of numbers called nums and we have another number k, we have to check whether any two numbers present in the list add up to k or now. Same elements must not be used twice. And numbers can be negative or 0.
So, if the input is like nums = [45, 18, 9, 13, 12], k = 31, then the output will be True, as 18 + 13 = 31
To solve this, we will follow these steps −
- temp_set:= a new set
- for each num in nums, do
- if num is in temp_set, then
- return True
- add (k-num) into temp_set
- if num is in temp_set, then
- return False
Let us see the following implementation to get better understanding −
Example
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))
Input
[45, 18, 9, 13, 12], 31
Output
True