ধরুন আমাদের কাছে nums নামে একটি সংখ্যার তালিকা আছে, আমাদেরকে সংখ্যায় সংক্ষিপ্ততম সাবলিস্টের দৈর্ঘ্য খুঁজে বের করতে হবে, যদি সাবলিস্টটি সাজানো হয়, তাহলে সমগ্র অ্যারে সংখ্যাগুলি ঊর্ধ্বক্রম অনুসারে সাজানো হবে৷
সুতরাং, ইনপুট যদি nums =[1,2,5,4,9,10] এর মত হয়, তাহলে আউটপুট হবে 2, যেমন সাবলিস্ট [4, 3] সাজানো হলে আমরা [0, 1, 3, 4 পাব। , 8, 9]
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- f:=-1, l:=-1
- lst:=তালিকার সংখ্যাগুলি সাজান
- আমি 0 থেকে সংখ্যার আকারের মধ্যে,
- করুন
- যদি nums[i] lst[i] এর মত না হয়, তাহলে
- যদি f -1 এর মত হয়, তাহলে
- f :=i
- অন্যথায়,
- l :=i
- যদি f -1 এর মত হয়, তাহলে
- যদি nums[i] lst[i] এর মত না হয়, তাহলে
- যদি l -1 এর মত হয় এবং f -1 এর মত হয়, তাহলে
- রিটার্ন 0
- রিটার্ন l - f + 1
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
উদাহরণ
class Solution: def solve(self, nums): f=-1 l=-1 lst=sorted(nums) for i in range(len(nums)): if nums[i]!=lst[i]: if f == -1: f=i else: l=i if l == -1 and f == -1: return 0 return l-f+1 ob = Solution() print(ob.solve([1,2,5,4,9,10]))
ইনপুট
[1,2,5,4,9,10]
আউটপুট
2