💡最长斐波那契式子序列(Leetcode 873)详解与解法分析
📌 题目描述
我们说一个正整数序列是 斐波那契式(Fibonacci-like) 的,当且仅当它满足:
- 序列长度至少为 3。
- 对于任意的下标
i
,满足:X[i] + X[i+1] = X[i+2]
。
给定一个 严格递增的正整数数组arr
,你的任务是找出其中 最长的斐波那契式子序列 的长度。
如果不存在这样的子序列,返回 0
。
📎 举个例子:
输入:
arr = [1, 3, 7, 11, 12, 14, 18]
输出:
3
解释:
最长的斐波那契式子序列是 [1, 11, 12]
或 [3, 11, 14]
或 [7, 11, 18]
,长度为 3。
🧠 解题思路分析
我们不能暴力地尝试每一个子序列(指数级别组合),那样效率会非常低。观察题目性质后,我们可以借助 动态规