原题题目
代码实现(首刷小部分看解大部分自解)
int longestArithSeqLength(int* A, int ASize){
int* dp[ASize],i,j,max = 0,temp;
for(i=0;i<ASize;i++)
{
dp[i] = (int*)malloc(sizeof(int) * 20001);
memset(dp[i],0,sizeof(dp[i]));
}
for(i=1;i<ASize;i++)
{
for(j=0;j<i;j++)
{
temp = A[i] - A[j] + 10000;
dp[i][temp] = fmax(dp[i][temp],dp[j][temp]+1);
max = fmax(dp[i][temp],max);
}
}
return max+1;
}