কম্পিউটার

একটি সাজানো অ্যারেকে জোড়ায় ভাগ করা যায় কিনা পরীক্ষা করুন যার যোগফল পাইথনে k


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

সুতরাং, যদি ইনপুট হয় arr =[1, 2, 3, 4, 5, 6], k =7, তাহলে আউটপুটটি True হবে কারণ আমরা জোড়া নিতে পারি যেমন (2, 5), (1, 6) এবং (3, 4)।

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

  • n :=arr এর আকার
  • যদি n বিজোড় হয়, তাহলে
    • মিথ্যে ফেরত দিন
  • নিম্ন :=0, উচ্চ :=n - 1
  • যখন কম <উচ্চ, কর
    • যদি arr[low] + arr[high] k এর মত না হয়, তাহলে
      • মিথ্যে ফেরত দিন
    • low :=low + 1
    • উচ্চ :=উচ্চ - 1
  • সত্য ফেরান

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

উদাহরণ

def solve(arr, k):
   n = len(arr)
   if n % 2 == 1:
      return False
   low = 0
   high = n - 1
   while low < high:
      if arr[low] + arr[high] != k:
         return False
      low = low + 1
      high = high - 1
   return True
arr = [1, 2, 3, 4, 5, 6]
k = 7
print(solve(arr, k))

ইনপুট

[1, 2, 3, 4, 5, 6], 7

আউটপুট

True

  1. প্রোগ্রাম চেক করার জন্য আমরা চারটি উপাদান খুঁজে পেতে পারি যার যোগফল পাইথনে k বা নয়

  2. পাইথনে যে সমষ্টিগুলির জন্য একটি অ্যারেকে সমান সমষ্টির সাব্যারেতে ভাগ করা যায় তা সন্ধান করুন

  3. পাইথনের একটি সাজানো অ্যারেতে একটি সংখ্যা সংখ্যাগরিষ্ঠ উপাদান কিনা তা পরীক্ষা করুন

  4. পাইথনে সাজানো অ্যারে মার্জ করুন