কম্পিউটার

ন্যূনতম দৈর্ঘ্যের ক্রমবিহীন সাবাররে খুঁজুন, বাছাই করা যা সম্পূর্ণ অ্যারেকে পাইথনে সাজানো হয়েছে


ধরুন আমাদের n আকারের একটি প্রদত্ত একটি সাজানো বিন্যাস A[0..n-1] আছে, আমাদের ন্যূনতম দৈর্ঘ্যের সাবয়ারে A[s..e] খুঁজে বের করতে হবে যাতে সাজানোর মাধ্যমে এই subarray পুরো অ্যারে সাজানো হবে. সুতরাং, যদি অ্যারের মত হয় [2,6,4,8,10,9,15], তাহলে আউটপুট হবে 5। সাবয়ারে হবে [6,4,8,10,9]।

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

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

  • উত্তর :=0

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

  • আমি 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. অ্যারের যোগফল খুঁজে পেতে পাইথন প্রোগ্রাম