Two Sum Less Than K in Python



Suppose we have an array A of integers and another integer K is given. We have to find the maximum S such that there exists i < j with A[i] + A[j] = S and S < K. If there is no i, j exists satisfying this equation, then return -1. So for example if A = [34,23,1,24,75,33,54,8] and K = 60, then the output will be 58, as we can use 34 and 24 to sum 58, which is less than 60.

To solve this, we will follow these steps −

  • res = - 1
  • if A has only one element, then return -1
  • for i in range 0 to length of A
    • for j in range i + 1 to length of A
      • temp = A[i] + A[j]
      • if temp < K, then res = max of res and temp
  • return res

Example(Python)

Let us see the following implementation to get a better understanding −

 Live Demo

class Solution(object):    def twoSumLessThanK(self, A, K):       ans = -1       if len(A)==1:          return -1       for i in range(len(A)):          for j in range(i+1,len(A)):             temp = A[i]+ A[j]             if temp<K:                ans = max(ans,temp)       return ans ob1 = Solution() print(ob1.twoSumLessThanK([34,23,1,24,75,33,54,8],60))

Input

[34,23,1,24,75,33,54,8] 60

Output

58
Updated on: 2020-04-28T08:31:32+05:30

865 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements