কম্পিউটার

পাইথনে সমান পণ্য সহ অ্যারেটিকে দুটি সাবয়ারেতে ভাগ করে এমন একটি উপাদান খুঁজুন


ধরুন আমাদের আকার N এর একটি অ্যারে আছে; আমাদের এমন একটি উপাদান খুঁজে বের করতে হবে যা অ্যারেটিকে সমান পণ্য সহ দুটি ভিন্ন সাব-অ্যারেতে ভাগ করে। রিটার্ন -1 যদি এরকম কোন পার্টিশন সম্ভব না হয়।

সুতরাং, যদি ইনপুটটি [2,5,3,2,5] এর মত হয়, তাহলে আউটপুট হবে 3 তাহলে সাবয়ারে হল:{2, 5} এবং {2, 5}

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

  • n :=অ্যারের আকার
  • multiply_pref :=একটি নতুন তালিকা
  • multiply_pref এর শেষে
  • অ্যারে সন্নিবেশ করুন[0]
  • 1 থেকে n রেঞ্জের জন্য,
      করুন
    • multiply_pref[i-1]*array[i] multiply_pref এর শেষে সন্নিবেশ করুন
  • multiply_suff :=n আকারের একটি তালিকা, এবং কোনটি দিয়ে পূরণ করবেন না
  • multiply_suff[n-1] :=অ্যারে[n-1]
  • n-2 থেকে -1 রেঞ্জে
  • এর জন্য, 1 কমিয়ে,
      করুন
    • multiply_suff[i] :=multiply_suff[i+1]*array[i]
  • 1 থেকে n-1 রেঞ্জের জন্য,
      করুন
    • যদি multiply_pref[i] হয় multiply_suff[i] এর মত, তাহলে
      • রিটার্ন অ্যারে[i]
  • রিটার্ন -1

উদাহরণ কোড

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

def search_elem(array):
   n = len(array)
   multiply_pref = []
   multiply_pref.append(array[0])
   for i in range(1, n):
      multiply_pref.append(multiply_pref[i-1]*array[i])
   multiply_suff = [None for i in range(0, n)]
   multiply_suff[n-1] = array[n-1]
   for i in range(n-2, -1, -1):
      multiply_suff[i] = multiply_suff[i+1]*array[i]
   for i in range(1, n-1):
      if multiply_pref[i] == multiply_suff[i]:
         return array[i]
   return -1
array = [2,5,3,2,5]
print(search_elem(array))

ইনপুট

[2,5,3,2,5]

আউটপুট

3

  1. পাইথন প্রোগ্রামে অ্যারের সমষ্টি খুঁজুন

  2. পাইথন প্রোগ্রাম একটি অ্যারের বৃহত্তম উপাদান খুঁজে বের করতে

  3. অ্যারের যোগফল খুঁজে পেতে পাইথন প্রোগ্রাম

  4. একটি 2D অ্যারেতে k'th ক্ষুদ্রতম উপাদান খুঁজে পেতে পাইথন প্রোগ্রাম