楼主: 
JIWP (JIWP)   
2025-02-28 01:21:16873. Length of Longest Fibonacci Subsequence
费波那契数列一定是超过3个数字
所以我们先固定前两个数字,在往后找有没有符合条件的数字
并且纪录最长的数列
先用一个map:rec纪录arr里的所有数字
假设数列的前两位是arr[i]、arr[j] ( i < j )
令cur = arr[j] next = arr[i]+arr[j]
先检查rec[next]是否存在
存在的话,把cur、next各自往前一位
cur = next、next = next + cur
这样找出最长的数列
func lenLongestFibSubseq(arr []int) int {
        rec, ans, n := make(map[int]bool), 0, len(arr)
        for _, val := range arr {
                rec[val] = true
        }
        for i := 0; i < n; i++ {
                for j := i + 1; j < n; j++ {
                        next := arr[i] + arr[j]
                        if rec[next] {
                                cnt, cur, next := 3, next, next+arr[j]
                                for rec[next] {
                                        cnt++
                                        cur, next = next, next+cur
                                }
                                ans = max(ans, cnt)
                        }
                }
        }
        return ans
}