মান লক্ষ্য করুন আমাদের কাছে স্ট্রিক্টলি ইনক্রিজিং পজিটিভ সংখ্যার একটি তালিকা nums আছে। আমাদের কাজ হল এমন সবচেয়ে লম্বা সাবসিকোয়েন্স A (ন্যূনতম দৈর্ঘ্য ৩) বের করা যাতে A[i] = A[i-1] + A[i-2] সকল i > 1 এর জন্য সত্য হয়।
উদাহরণস্বরূপ, যদি ইনপুট হয় nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14], তবে আউটপুট হবে 6, কারণ আমরা [1, 2, 3, 5, 8, 13] বেছে নিতে পারি।
A := numsn := len(A)maxLen := 0S := set(A)iকে ০ থেকেnপর্যন্ত লুপ চালান:jকেi+1থেকেnপর্যন্ত লুপ চালান:x := A[j]y := A[i] + A[j]length := 2y in Sহলে লুপ চালান:z := x + yx := yy := zlength += 1maxLen := max(maxLen, length)
- যদি
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