মনে করুন 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 হলে আউটপুট ৫৮, কারণ ৩৪+২৪=৫৮ যা ৬০-এর চেয়ে ছোট।
এটি সমাধান করার জন্য আমরা নিচের ধাপগুলো অনুসরণ করব:
- res = -1
- যদি A-তে শুধু একটি উপাদান থাকে, -1 রিটার্ন করুন
- for i in range 0 to len(A)
- for j in range i+1 to len(A)
- temp = A[i] + A[j]
- যদি temp < K, res = max(res, temp)
- for j in range i+1 to len(A)
- res রিটার্ন করুন
উদাহরণ (পাইথন)
নিচের ইমপ্লিমেন্টেশনটি দেখুন ভালো বুঝতে:
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