Program to find any two numbers in a list that sums up to k in Python


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
  • return False

Let us see the following implementation to get better understanding −

Example

 Live Demo

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

Updated on: 05-Oct-2020

677 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements