কম্পিউটার

পাইথনে ডিসজয়েন্ট ইন্টারভালে পার্টিশন অ্যারে খোঁজার প্রোগ্রাম


ধরুন আমাদের একটি অ্যারের সংখ্যা আছে, আমাদের এটিকে বাম এবং ডান নামে দুটি ভিন্ন সাব্যারেতে ভাগ করতে হবে যাতে −

  • বাম সাবয়ারের প্রতিটি উপাদান ডান সাবয়ারের প্রতিটি উপাদানের থেকে কম বা সমান।

  • বাম এবং ডান সাব্যারে অ-খালি।

  • বাম সাবয়ারের সম্ভাব্য আকার সবচেয়ে ছোট।

এই ধরনের পার্টিশন করার পরে আমাদের বাম দৈর্ঘ্য খুঁজে বের করতে হবে।

সুতরাং, ইনপুট যদি nums =[5,0,3,8,6] এর মত হয়, তাহলে আউটপুট হবে 3 কারণ বাম অ্যারে হবে [5,0,3] এবং ডান সাবয়ারে হবে [8,6]।

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

  • mx :=null, temp :=null, nmx :=null

  • temp2 :=0

  • প্রতিটি i সংখ্যায়, করুন

    • যদি mx null এর মত হয়, তাহলে

      • mx :=i

      • nmx :=i

      • temp :=temp2

      • temp2 :=temp2 + 1

      • পরবর্তী পুনরাবৃত্তির জন্য যান

    • যদি i>=mx, তাহলে

      • temp2 :=temp2 + 1

      • যদি i>nmx, তাহলে

        • nmx :=i

      • পরবর্তী পুনরাবৃত্তির জন্য যান

    • অন্যথায়,

      • temp :=temp2

      • temp2 :=temp2 + 1

      • mx :=nmx

      • পরবর্তী পুনরাবৃত্তির জন্য যান

  • রিটার্ন টেম্প+1

উদাহরণ

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

def solve(nums):
   mx = None
   temp = None
   nmx = None
   temp2 = 0

   for i in nums:

      if(mx==None):
         mx = i
         nmx = i
         temp = temp2
         temp2+=1
         continue

      if(i>=mx):
         temp2+=1
         if(i>nmx):
            nmx = i
         continue

      else:
         temp = temp2
         temp2+=1
         mx = nmx
         continue

   return temp+1

nums = [5,0,3,8,6]
print(solve(nums))

ইনপুট

[5,0,3,8,6]

আউটপুট

3

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

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

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

  4. n দ্বারা বিভক্ত অ্যারে গুণের অনুস্মারক সন্ধানের জন্য পাইথন প্রোগ্রাম