ধরুন আমাদের কাছে সংখ্যা নামক সংখ্যার একটি তালিকা আছে, আমাদেরকে দীর্ঘতম অনুক্রমের দৈর্ঘ্য খুঁজে বের করতে হবে যা প্রতিটি পরপর সংখ্যায় সাইন ফ্লিপ করে।
সুতরাং, ইনপুট যদি সংখ্যার মত হয় =[1, 3, -6, 4, -3], তাহলে আউটপুট হবে 4, যেমন আমরা বেছে নিতে পারি [1, -6, 4, -3]।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- pos :=0, neg :=0
- সংখ্যায় প্রতিটি n এর জন্য, করুন
- যদি n <0 হয়, তাহলে
- neg :=pos + 1
- অন্যথায়,
- pos :=neg + 1
- যদি n <0 হয়, তাহলে
- সর্বোচ্চ pos এবং neg ফেরত দিন
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
উদাহরণ
class Solution: def solve(self, nums): pos = neg = 0 for n in nums: if n < 0: neg = pos + 1 else: pos = neg + 1 return max(pos, neg) ob = Solution() nums = [1, 3, -6, 4, -3] print(ob.solve(nums))
ইনপুট
[1, 3, -6, 4, -3]
আউটপুট
4