ধরুন আমাদের কাছে সংখ্যার একটি তালিকা আছে যাকে বলা হয় সংখ্যা। আমরা তালিকাটিকে কিছু পৃথক সাবলিস্টে বিভাজন করতে পারি তারপর প্রতিটি অংশকে সাজাতে পারি। আমাদের সর্বাধিক সংখ্যক সাবলিস্ট খুঁজে বের করতে হবে যাতে আমরা বিভাজন করতে পারি যাতে সামগ্রিকভাবে সংখ্যাগুলি পরে সাজানো হয়।
সুতরাং, ইনপুট যদি nums =[4, 3, 2, 1, 7, 5] এর মত হয়, তাহলে আউটপুট হবে 2, যেমন আমরা সাবলিস্ট যেমন [4, 3, 2, 1] এবং [7, 5]
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব:
- গণনা :=0
- main_sum :=0, sorted_sum :=0
- সংখ্যা থেকে x এবং সংখ্যার সাজানো ফর্ম থেকে y প্রতিটি উপাদানের জন্য, করুন
- main_sum :=main_sum + x
- sorted_sum :=sorted_sum + y
- যদি main_sum হয় sorted_sum এর মত, তাহলে
- গণনা :=গণনা + 1
- রিটার্ন গণনা
আরও ভালভাবে বোঝার জন্য আসুন নিম্নলিখিত বাস্তবায়ন দেখি:
উদাহরণ
class Solution: def solve(self, nums): count = 0 main_sum = sorted_sum = 0 for x, y in zip(nums, sorted(nums)): main_sum += x sorted_sum += y if main_sum == sorted_sum: count += 1 return count ob = Solution() nums = [4, 3, 2, 1, 7, 5] print(ob.solve(nums))
ইনপুট
[4, 3, 2, 1, 7, 5]
আউটপুট
2