ধরুন আমাদের কাছে সংখ্যা নামক সংখ্যার একটি তালিকা রয়েছে এবং এটি একটি লাইনে বাস স্টপগুলি দেখাচ্ছে যেখানে সংখ্যাগুলি দেখায় যে একটি বাস স্টেশন i এ পৌঁছাতে হবে। এখন যেহেতু বাসগুলি কেবলমাত্র এগিয়ে যেতে পারে, তাই আমাদের ন্যূনতম সংখ্যক বাসগুলি খুঁজে বের করতে হবে যা সমস্ত স্টপের মধ্য দিয়ে যেতে হবে৷
সুতরাং, যদি ইনপুটটি সংখ্যার মত হয় =[1, 2, 7, 9, 3, 4], তাহলে আউটপুট হবে 2, যেমন একটি বাস স্টপ নিতে পারে [1, 2, 3, 4] এবং অন্যটি করতে পারে [ 7, 9]।
এটি সমাধান করার জন্য, আমরা এই পদক্ষেপগুলি অনুসরণ করব—
-
উত্তর :=0
-
দেখা :=একটি তালিকা যার দৈর্ঘ্য সংখ্যার সমান এবং প্রাথমিকভাবে মিথ্যা দিয়ে ভরা
-
প্রতিটি সূচক i এবং অনুরূপ n সংখ্যার জন্য, করুন
-
যদি দেখা যায়[i] মিথ্যা, তাহলে
-
দেখা[i] :=সত্য
-
ans :=ans + 1
-
পূর্ববর্তী :=n
-
j রেঞ্জ i+1 থেকে সংখ্যার আকারের জন্য, করুন
-
যদি nums[j]> prev এবং দেখা [j] মিথ্যা হয়, তাহলে
-
দেখা [j] :=সত্য
-
পূর্ববর্তী :=সংখ্যা[j]
-
-
-
-
-
উত্তর ফেরত দিন
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
উদাহরণ
class Solution: def solve(self, nums): ans = 0 seen = [False] * len(nums) for i, n in enumerate(nums): if not seen[i]: seen[i] = True ans += 1 prev = n for j in range(i+1, len(nums)): if nums[j] > prev and not seen[j]: seen[j] = True prev = nums[j] return ans ob = Solution() nums = [1, 2, 7, 9, 3, 4] print(ob.solve(nums))
ইনপুট
[1, 2, 7, 9, 3, 4]
আউটপুট
2