#leetcode873. 最长的斐波那契子序列的长度

最长的斐波那契子序列的长度

题目大意

描述:给定一个严格递增的正整数数组 aa

要求:从数组 aa 中找出最长的斐波那契式的子序列的长度。如果不存斐波那契式的子序列,则返回 0。

说明:

斐波那契式序列:如果序列 X1,X2,...,XnX_1, X_2, ..., X_n 满足:

n3n \ge 3

对于所有 i+2ni + 2 \le n,都有 Xi+Xi+1=Xi+2X_i + X{i+1} = X{i+2}

则称该序列为斐波那契式序列。

斐波那契式子序列:从序列 AA 中挑选若干元素组成子序列,并且子序列满足斐波那契式序列,则称该序列为斐波那契式子序列。例如:A=[3,4,5,6,7,8]A = [3, 4, 5, 6, 7, 8]。则 [3,5,8][3, 5, 8]AA 的一个斐波那契式子序列。

输入格式

第一行1个数n,表示输入数组长度, 接下来第二行 n个数字

8
1 2 3 4 5 6 7 8
5

解释: 最长的斐波那契式子序列为 [1,2,3,5,8]。 示例 2:

7
1 3 7 11 12 14 18
3

解释: 最长的斐波那契式子序列有 [1 11 12]、[3 11 14] 以及 [7 11 18]。

数据范围

3n10003 \le n \le 1000

1a[i]<a[i+1]1091 \le a[i] < a[i + 1] \le 10^9