动态规划:
dp[i][j] // 必须以i结尾的差为j的最长,这里需要空间压缩,用map
class Solution {
public:
int longestArithSeqLength(vector<int>& A) {
int N = A.size();
map<int,int> dp[N+1];
int ans = 1;
for(int i=0;i<N;i++){
for(int j=0;j<i;j++){
int t = A[i] - A[j];
dp[i][t] = dp[j][t] + 1;
ans = max(ans,dp[i][t]+1);
}
}
return ans;
}
};