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

পাইথনে সাবলিস্ট হ্রাস করার পরে কঠোরভাবে বৃদ্ধির দীর্ঘতম দৈর্ঘ্য খুঁজে বের করার প্রোগ্রাম


ধরুন আমাদের কাছে সংখ্যার একটি তালিকা আছে যাকে বলা হয় সংখ্যা। আমাদের দীর্ঘতম সাবলিস্টের দৈর্ঘ্য খুঁজে বের করতে হবে যেমন (সর্বনিম্ন দৈর্ঘ্য 3) এর মানগুলি কঠোরভাবে বৃদ্ধি পাচ্ছে এবং তারপরে কমছে৷

সুতরাং, যদি ইনপুটটি সংখ্যার মত হয় =[7, 1, 3, 5, 2, 0], তাহলে আউটপুট হবে 5, যেমন সাবলিস্ট [2, 4, 6, 3, 1] কঠোরভাবে বাড়ছে তারপর হ্রাস পাচ্ছে .

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

  • i :=0, n :=a এর আকার, res :=-ইনফিনিটি
  • যখন i
  • st :=i
  • linc :=0, ldec :=0
  • যখন i
  • linc :=linc + 1
  • i :=i + 1
  • যখন i a[i + 1], do
    • ldec :=ldec + 1
    • i :=i + 1
  • যদি linc> 0 এবং ldec> 0 হয়, তাহলে
    • res :=res এর সর্বোচ্চ এবং (i - st + 1)
  • যখন i
  • i :=i + 1
  • res ফেরত দিন যদি res>=0 অন্যথায় 0
  • আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

    উদাহরণ

    class Solution:
       def solve(self, a):
          i, n, res = 0, len(a), float("-inf")
          while i < n - 2:
             st = i
             linc, ldec = 0, 0
             while i < n - 1 and a[i] < a[i + 1]:
                linc += 1
                i += 1
             while i < n - 1 and a[i] > a[i + 1]:
                ldec += 1
                i += 1
             if linc > 0 and ldec > 0:
                res = max(res, i - st + 1)
             while i < n - 1 and a[i] == a[i + 1]:
                i += 1
          return res if res >= 0 else 0
    ob = Solution()
    nums = [8, 2, 4, 6, 3, 1]
    print(ob.solve(nums))

    ইনপুট

    [[8, 2, 4, 6, 3, 1]

    আউটপুট

    5

    1. পাইথনে দীর্ঘতম বিকল্প বৈষম্য উপাদানগুলির দৈর্ঘ্য খুঁজে বের করার প্রোগ্রাম

    2. পাইথনে দীর্ঘতম ক্রমবর্ধমান অনুক্রমের দৈর্ঘ্য খুঁজে বের করার প্রোগ্রাম

    3. পাইথনে দীর্ঘতম স্বতন্ত্র সাবলিস্টের দৈর্ঘ্য খুঁজে বের করার প্রোগ্রাম

    4. পাইথনে সংলগ্ন কঠোরভাবে বর্ধিত সাবলিস্টের দৈর্ঘ্য খুঁজে বের করার জন্য প্রোগ্রাম