kt: add «873. Length of Longest Fibonacci Subsequence»

URL:	https://leetcode.com/problems/length-of-longest-fibonacci-subsequence/
This commit is contained in:
Matej Focko 2025-02-27 10:14:37 +01:00
parent c4a58d7d79
commit c1c49bfcfe
Signed by: mfocko
SSH key fingerprint: SHA256:icm0fIOSJUpy5+1x23sfr+hLtF9UhY8VpMC7H4WFJP8

View file

@ -0,0 +1,33 @@
class Solution {
fun lenLongestFibSubseq(arr: IntArray): Int {
val n = arr.size
val dp = Array(n) { IntArray(n) }
var maxLen = 0
(2..n - 1).forEach {
var (l, r) = 0 to it - 1
while (l < r) {
val sum = arr[l] + arr[r]
when {
sum > arr[it] -> r--
sum < arr[it] -> l++
else -> {
dp[r][it] = dp[l][r] + 1
maxLen = listOf(maxLen, dp[r][it]).max()!!
r--
l++
}
}
}
}
return when (maxLen) {
0 -> 0
else -> maxLen + 2
}
}
}