Leetcode 1027. 最长等差数列(DAY 45) ---- 动态规划学习期

原题题目

在这里插入图片描述



代码实现(首刷小部分看解大部分自解)

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;
}

猜你喜欢

转载自blog.csdn.net/qq_37500516/article/details/113806835