如果序列 x1, x2, ..., xn
满足下列条件,就说它是 斐波那契式 的:
n >= 3
i + 2 <= n
,都有 xi + xi+1 == xi+2
给定一个 严格递增 的正整数数组形成序列 arr
,找到 arr
中最长的斐波那契式的子序列的长度。如果不存在,返回 0
。
子序列 是通过从另一个序列 arr
中删除任意数量的元素(包括删除 0 个元素)得到的,同时不改变剩余元素顺序。例如,[3, 5, 8]
是 [3, 4, 5, 6, 7, 8]
的子序列。
示例 1:
输入: arr = [1,2,3,4,5,6,7,8] 输出: 5 解释: 最长的斐波那契式子序列为 [1,2,3,5,8] 。
示例 2:
输入: arr = [1,3,7,11,12,14,18] 输出: 3 解释: 最长的斐波那契式子序列有 [1,11,12]、[3,11,14] 以及 [7,11,18] 。
提示:
3 <= arr.length <= 1000
1 <= arr[i] < arr[i + 1] <= 109
iarr[i]
, which can be done in linear time per element.1. 请不要在评论区发表题解!
2. 评论区可以发表关于对翻译的建议、对题目的疑问及其延伸讨论。
3. 如果你需要整理题解思路,获得反馈从而进阶提升,可以去题解区进行。