কম্পিউটার

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


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

সুতরাং, যদি ইনপুটটি nums =[35, 5, 6, 7, 8, 9, 12, 11, 26] এর মতো হয়, তাহলে আউটপুট হবে 7, কারণ যদি আমরা সংখ্যা থেকে 12 বাদ দেই, তালিকাটি হবে [5] , 6, 7, 8, 9, 11, 26], দৈর্ঘ্য হল 7, এটি দীর্ঘতম, সংলগ্ন, কঠোরভাবে বর্ধমান উপ-তালিকা।

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

  • সংখ্যা খালি হলে, তারপর
    • রিটার্ন 0
  • শেষ :=সংখ্যার মতো আকারের একটি তালিকা এবং 1 দিয়ে পূরণ করুন
  • শুরু করুন :=সংখ্যার মতো আকারের একটি তালিকা এবং 1 দিয়ে পূরণ করুন
  • আমি রেঞ্জ 1 থেকে সংখ্যার আকার - 1 এর জন্য, কর
    • যদি nums[i]> nums[i - 1], তারপর
      • end[i] :=end[i - 1] + 1
  • j-এর জন্য সংখ্যার পরিসরের আকার - 2 থেকে 0, 1 দ্বারা হ্রাস করুন, করুন
    • যদি nums[j + 1]> nums[j] হয়, তাহলে
      • start[j] :=start[j + 1] + 1
  • res :=শেষের উপাদান এবং শুরুর উপাদানের সর্বাধিক
  • k এর জন্য রেঞ্জ 1 থেকে সংখ্যার আকার - 2, করুন
    • যদি সংখ্যা [k - 1]
    • res :=res এর সর্বোচ্চ এবং (end[k - 1] + start[k + 1])
  • রিটার্ন রিটার্ন
  • উদাহরণ

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

    def solve(nums):
       if not nums:
          return 0
       end = [1 for i in nums]
       start = [1 for i in nums]
    
       for i in range(1, len(nums)):
          if nums[i] > nums[i - 1]:
             end[i] = end[i - 1] + 1
    
       for j in range(len(nums) - 2, -1, -1):
          if nums[j + 1] > nums[j]:
             start[j] = start[j + 1] + 1
    
       res = max(max(end), max(start))
    
       for k in range(1, len(nums) - 1):
          if nums[k - 1] < nums[k + 1]:
             res = max(res, end[k - 1] + start[k + 1])
    
       return res
    
    nums = [35, 5, 6, 7, 8, 9, 12, 11, 26]
    print(solve(nums))

    ইনপুট

    [35, 5, 6, 7, 8, 9, 12, 11, 26]

    আউটপুট

    7

    1. পাইথনে K বৃদ্ধির পর দীর্ঘতম সমতুল্য সাবলিস্ট খুঁজতে প্রোগ্রাম

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

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

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