ধরুন আমাদের কাছে সংখ্যা নামক সংখ্যার একটি তালিকা আছে, যেখানে সমস্ত উপাদান অনন্য। আমাদের দীর্ঘতম সাবলিস্টের দৈর্ঘ্য খুঁজে বের করতে হবে যাতে ধারাবাহিক উপাদান রয়েছে।
সুতরাং, যদি ইনপুটটি nums =[3, 6, 7, 5, 4, 9] এর মত হয়, তাহলে আউটপুট হবে 5, কারণ সাবলিস্ট হল [3, 6, 7, 5, 4] এতে পরপর সমস্ত উপাদান রয়েছে 3 থেকে 7 পর্যন্ত।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- ret :=0
- আমি 0 থেকে সংখ্যার আকার - 1 এর মধ্যে, কর
- lhs :=সংখ্যা[i]
- rhs :=সংখ্যা[i]
- j এর জন্য রেঞ্জ i থেকে সংখ্যার আকার - 1, do
- lhs :=ন্যূনতম lhs এবং nums[j]
- rhs :=সর্বাধিক rhs এবং nums[j]
- যদি (rhs - lhs) একই হয় (j - i), তাহলে
- ret :=ret এর সর্বোচ্চ এবং (j - i + 1)
- রিটার্ন রিটার্ন
উদাহরণ
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
def solve(nums): ret = 0 for i in range(len(nums)): lhs = nums[i] rhs = nums[i] for j in range(i, len(nums)): lhs = min(lhs, nums[j]) rhs = max(rhs, nums[j]) if rhs - lhs == j - i: ret = max(ret, j - i + 1) return ret nums = [3, 6, 7, 5, 4, 9] print(solve(nums))
ইনপুট
[3, 6, 7, 5, 4, 9]
আউটপুট
1