如果序列 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