Leetcode 1770. The maximum score for performing multiplication operations (DAY 52) ----Dynamic programming learning period (today first two meals)

Original title

Insert picture description here



Code implementation (most of the first brush to see the solution)

int maximumScore(int* nums, int numsSize, int* multipliers, int multipliersSize){
    
    
    long long dp[1010][1010];
    int i,j,max;
    dp[0][0] = 0;
    for(i=0;i<=multipliersSize;i++)
    {
    
    
        for(j=0;i+j<=multipliersSize;j++)
        {
    
    
            if(i || j) dp[i][j] = INT_MIN;
            if(i) dp[i][j] = fmax(dp[i][j],dp[i-1][j] + nums[i-1] * multipliers[i+j-1]);
            if(j) dp[i][j] = fmax(dp[i][j],dp[i][j-1] + nums[numsSize-j] * multipliers[i+j-1]);
        }
    }
    max = INT_MIN;
    for(i=0;i<=multipliersSize;i++)
        max = fmax(max,dp[i][multipliersSize-i]);
    return max;
}

Guess you like

Origin blog.csdn.net/qq_37500516/article/details/113981434