LC 1218 [M] Longest Arithmetic Subsequence of Given Difference - ALawliet/algorithms GitHub Wiki
dp[i] = 1 + dp[i-k]
class Solution:
def longestSubsequence(self, arr: List[int], difference: int) -> int:
n = len(arr)
dp = {}
ans = 0
for num in arr:
target = num - difference
if target not in dp:
dp[num] = 1
else:
dp[num] = 1 + dp[target]
ans = max(ans, dp[num])
return ans