From 6be95b9fc0a27dfee79161fb1d22047aa9a62c6c Mon Sep 17 00:00:00 2001 From: bumpsoo Date: Thu, 27 Feb 2025 12:42:01 +0000 Subject: [PATCH] https://leetcode.com/problems/length-of-longest-fibonacci-subsequence --- .../length_of_longest_fibonacci_subsequence.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 medium/length_of_longest_fibonacci_subsequence.py diff --git a/medium/length_of_longest_fibonacci_subsequence.py b/medium/length_of_longest_fibonacci_subsequence.py new file mode 100644 index 0000000..28eb7fb --- /dev/null +++ b/medium/length_of_longest_fibonacci_subsequence.py @@ -0,0 +1,18 @@ +# https://leetcode.com/problems/length-of-longest-fibonacci-subsequence + +from typing import Dict, List, Tuple + +class Solution: + def lenLongestFibSubseq(self, arr: List[int]) -> int: + indexes: Dict[int, int] = {num: i for i, num in enumerate(arr)} + d: Dict[Tuple[int, int], int] = {} + result = 0 + + for i in range(len(arr)): + for j in range(i): + k = indexes.get(arr[i] - arr[j]) + if k is not None and k < j: + d[j, i] = d.get((k, j), 2) + 1 + result = max(result, d[j, i]) + return result +