কম্পিউটার

পাইথনে সংক্ষিপ্ততম সাজানো অবিচ্ছিন্ন সাবাররে


ধরুন আমাদের একটি পূর্ণসংখ্যা অ্যারে আছে, আমাদের একটি অবিচ্ছিন্ন সাবয়ারে খুঁজে বের করতে হবে, যদি আমরা শুধুমাত্র সেই সাবয়ারেটিকে আরোহী ক্রমে সাজান, তাহলে পুরো অ্যারেটিও সাজানো হবে। আমাদের এই জাতীয় ক্ষুদ্রতম সাবয়ারে খুঁজে বের করতে হবে এবং এর দৈর্ঘ্য বের করতে হবে। সুতরাং যদি অ্যারেটি [2,6,4,8,10,9,15] হয়, তাহলে আউটপুট হবে 5। অ্যারেটি হবে [6,4,8,10,9]

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

  • res :=সংখ্যাগুলিকে অ্যারে হিসাবে সাজান

  • উত্তর :=0

  • একটি লিঙ্ক তালিকা হিসাবে r সেট করুন

  • i এর জন্য রেঞ্জ 0 থেকে রেজুলেশনের দৈর্ঘ্য

    • যদি nums[i] res[i] এর মত না হয়, তাহলে r এ i ঢোকান

  • যদি r-এর দৈর্ঘ্য 0 হয়, তাহলে 0 ফেরত দিন, যদি r-এর দৈর্ঘ্য 1 হয়, তাহলে 1 ফেরত দিন

  • r এর শেষ উপাদানটি ফেরত দিন - r + 1

    এর প্রথম উপাদান

উদাহরণ (পাইথন)

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

class Solution(object):
   def findUnsortedSubarray(self, nums):
      res = sorted(nums)
      ans = 0
      r = []
      for i in range(len(res)):
         if nums[i] != res[i]:
            r.append(i)
         if not len(r):
            return 0
         if len(r) == 1:
            return 1
         return r[-1]-r[0]+1
ob1 = Solution()
print(ob1.findUnsortedSubarray([2,6,4,8,10,9,15]))

ইনপুট

[2,6,4,8,10,9,15]

আউটপুট

5

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

  2. পাইথনে সর্বাধিক পণ্য সাবারে

  3. পাইথনে সর্বোচ্চ সাবারে

  4. পাইথন প্রোগ্রাম দুটি সাজানো না হওয়া তালিকার একটি সাজানো একত্রিত তালিকা তৈরি করতে