কম্পিউটার টিউটোরিয়াল

পাইথনে Two Sum Less Than K সমস্যা সমাধান

মনে করুন 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)
  • 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

  1. পাইথনে বাইনারি ট্রিতে পাথ সাম (Path Sum)

  2. পাইথনে টু সাম (Two Sum)

  3. পাইথনে দুইটিরও বেশি বা অ্যারে সংখ্যার জিসিডি (GCD) প্রোগ্রাম

  4. পাইথন প্রোগ্রাম: দুইটির অধিক (অথবা অ্যারে) সংখ্যার GCD বের করা