# Leetcode 1218 - Longest arithmetic subsequence of given diff

`Note:`

`dp[i]`

is the longest length ending with`arr[i]`

.- But if we use normal DP, there will be a double for loop, which leads to TLE.
- Because we are looking for an
`arithmetic progression`

. We can know what the`prev num`

should be by`cur num`

. - If we use a
`map`

to store each other, then we can know if`map.get(cur - diff)`

exist or not. - This saves us lots of time.

`Question:`

Given an integer array `arr`

and an integer `difference`

, return the length of the longest subsequence in arr which is an arithmetic sequence such that the difference between adjacent elements in the subsequence equals difference.

A subsequence is a sequence that can be derived from arr by deleting some or no elements without changing the order of the remaining elements.

`Example:`

1 | Input: arr = [1,3,5,7], difference = 1 |

`Code:`

1 | /** |