ধরুন আমাদের কাছে ক্রমবর্ধমান ধনাত্মক সংখ্যার একটি তালিকা আছে যাকে বলা হয় সংখ্যা। আমাদেরকে দীর্ঘতম অনুগামী A এর দৈর্ঘ্য খুঁজে বের করতে হবে (দৈর্ঘ্য সর্বনিম্ন 3 এর) যেমন A[i] =A[i - 1] + A[i - 2] সমস্ত i> 1 এর জন্য।
সুতরাং, যদি ইনপুটটি সংখ্যার মত হয় =[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14], তাহলে আউটপুট হবে 6, যেমন আমরা বাছাই করতে পারি। [১, ২, ৩, ৫, ৮, ১৩]।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- A :=সংখ্যা
- n :=A এর আকার
- maxLen :=0
- S :=A থেকে একটি নতুন সেট
- আমি 0 থেকে n রেঞ্জের জন্য, কর
- i + 1 থেকে n রেঞ্জে j-এর জন্য
- করুন
- x :=A[j]
- y :=A[i] + A[j]
- দৈর্ঘ্য :=2
- যখন y S তে উপস্থিত থাকে, do
- z :=x + y
- x :=y
- y :=z
- দৈর্ঘ্য :=দৈর্ঘ্য + 1
- maxLen :=maxLen এর সর্বোচ্চ, দৈর্ঘ্য
- করুন
- যদি maxLen> 2 হয়, তাহলে
- maxLen ফেরত দিন
- অন্যথায়,
- রিটার্ন 0
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
উদাহরণ
class Solution: def solve(self, nums): A = nums n = len(A) maxLen = 0 S = set(A) for i in range(0, n): for j in range(i + 1, n): x = A[j] y = A[i] + A[j] length = 2 while y in S: z = x + y x = y y = z length += 1 maxLen = max(maxLen, length) if maxLen > 2: return maxLen else: return 0 ob = Solution() nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14] print(ob.solve(nums))
ইনপুট
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
আউটপুট
6