কম্পিউটার

প্রদত্ত যোগফলের সাথে জোড়া খুঁজুন যাতে পাইথনে জোড়ার উপাদানগুলি বিভিন্ন সারিতে থাকে


ধরুন আমাদের অনন্য উপাদানের একটি ম্যাট্রিক্স এবং একটি যোগফল আছে; আমাদের ম্যাট্রিক্স থেকে সমস্ত জোড়া খুঁজে বের করতে হবে যার যোগফল প্রদত্ত যোগফলের সমান। এখানে, জোড়ার প্রতিটি উপাদান বিভিন্ন সারি থেকে নেওয়া হবে।

সুতরাং, যদি ইনপুট −

এর মত হয় ৷ ৷ ৷ ৷
2 43 5
6 9 8 7
10 11 1412
13 115 16

যোগফল =13, তাহলে আউটপুট হবে [(2, 11), (4, 9), (3, 10), (5, 8), (12, 1)]

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • res :=একটি নতুন তালিকা

  • n :=ম্যাট্রিক্সের আকার

  • 0 থেকে n রেঞ্জের জন্য, করুন

    • তালিকা ম্যাট্রিক্স [i]

      সাজান
  • আমি 0 থেকে n - 1 রেঞ্জের জন্য, করুন

    • i + 1 থেকে n রেঞ্জে j এর জন্য, করুন

      • নিম্ন :=0, উচ্চ :=n - 1

      • যখন কম =0, করুন

        • যদি (matrix[i, low] + matrix[j, high]) যোগফলের সমান হয়, তাহলে

          • pair :=(ম্যাট্রিক্স[i, low],matrix[j, high]) ব্যবহার করে জোড়া তৈরি করুন

          • res এর শেষে জোড়া সন্নিবেশ করুন

          • low :=low + 1

          • উচ্চ :=উচ্চ - 1

        • অন্যথায়,

          • যদি (matrix[i][low] + matrix[j][high]) <যোগফল, তারপর

            • low :=low + 1

          • অন্যথায়,

            • উচ্চ :=উচ্চ - 1

  • রিটার্ন রিটার্ন

উদাহরণ (পাইথন)

আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

MAX = 100
def sum_pair(matrix, sum):
   res = []
   n = len(matrix)
   for i in range(n):
   matrix[i].sort()
   for i in range(n - 1):
      for j in range(i + 1, n):
         low = 0
         high = n - 1
         while (low < n and high >= 0):
            if ((matrix[i][low] + matrix[j][high]) == sum):
               pair = (matrix[i][low],matrix[j][high])
               res.append(pair)
               low += 1
               high -= 1
         else:
         if ((matrix[i][low] + matrix[j][high]) < sum):
            low += 1
         else:
            high -= 1
   return res

sum = 13
matrix = [
   [2, 4, 3, 5],
   [6, 9, 8, 7],
   [10, 11, 14, 12],
   [13, 1, 15, 16]]
print(sum_pair(matrix, sum))

ইনপুট

[[2, 4, 3, 5],
[6, 9, 8, 7],
[10, 11, 14, 12],
[13, 1, 15, 16]]
sum = 13

আউটপুট

[(4, 9), (5, 8), (2, 11), (3, 10), (12, 1)]

  1. প্রদত্ত দুটি অ্যারে থেকে সাব-অ্যারে খুঁজুন যেমন তাদের পাইথনে সমান যোগফল রয়েছে

  2. প্রদত্ত যোগফলের সাথে জোড়া খুঁজুন যাতে পাইথনের বিভিন্ন BST-এ জোড়া উপাদান থাকে

  3. পাইথনে তালিকায় প্রদত্ত উপাদানগুলির ফ্রিকোয়েন্সির যোগফল খুঁজুন

  4. পাইথনে সূচক দ্বারা একটি তালিকার উপাদান খুঁজুন