题目链接:https://leetcode-cn.com/problems/longest-arithmetic-subsequence-of-given-difference/
题目如下:
class Solution {
public:
int longestSubsequence(vector<int>& arr, int difference) {
int max=0;
unordered_map<int,int> dp;//dp[i]表示以arr[i]为结尾的最长的等差子序列的长度
for(auto e:arr){//两元素之差是可变的,但相差的difference是固定的
dp[e]=dp[e-difference]+1;
if(dp[e]>max) max=dp[e];
}
return max;
}
};