Leetcode 3708. Longest Fibonacci Subarray
- Leetcode 3708. Longest Fibonacci Subarray
- 1. 解题思路
- 2. 代码实现
- 题目链接:3708. Longest Fibonacci Subarray
1. 解题思路
这一题思路上就是一个贪婪算法的思路。
我们从左往右考察,对于任意一个数,如果其恰好为前两个数的和,那么其就可以顺序构成斐波那契数列,对应的长度加一,否则就可以将其视为一个新的斐波那契数列的第二个元素。
由此,我们顺序遍历一轮数列即可得到最长的可组成的斐波那契数列的长度了。
2. 代码实现
给出python代码实现如下:
class Solution:def longestSubarray(self, nums: List[int]) -> int:n = len(nums)ans, cnt, idx = 2, 2, 2while idx < n:if nums[idx] == nums[idx-1] + nums[idx-2]:cnt += 1else:cnt = 2ans = max(ans, cnt)idx += 1return ans
提交代码评测得到:耗时99ms,占用内存33.46MB。