मान लीजिए हमारे पास पूर्णांकों की एक सरणी A है और दूसरा पूर्णांक K दिया गया है। हमें अधिकतम S ढूंढना है जैसे कि i < j के साथ A[i] + A[j] = S और S < K मौजूद हो। यदि ऐसा कोई i, j मौजूद नहीं है जो इस समीकरण को संतुष्ट करता हो, तो -1 लौटाएं। इसलिए उदाहरण के लिए यदि A = [34,23,1,24,75,33,54,8] और K = 60, तो आउटपुट 58 होगा, क्योंकि हम 34 और 24 का उपयोग करके 58 जोड़ सकते हैं, जो 60 से कम है।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- res = -1
- यदि A में केवल एक तत्व है, तो -1 लौटाएं
- i के लिए 0 से A की लंबाई तक
- j के लिए i + 1 से A की लंबाई तक
- temp = A[i] + A[j]
- यदि temp < K, तो res = res और temp का अधिकतम
- j के लिए i + 1 से A की लंबाई तक
- res लौटाएं
उदाहरण (Python)
बेहतर समझ के लिए निम्न कार्यान्वयन देखें -
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))
इनपुट
[34,23,1,24,75,33,54,8] 60
आउटपुट
58