Leetcode 375. 猜数字大小 II(DAY 45) ---- 动态规划学习期(AC那一刻的感觉又回来了!)

原题题目

在这里插入图片描述



代码实现(首刷基本等于自解)

int getMoneyAmount(int n){
    
    
    int dp[n+1][n+1],end,start,dvalue,pos;
    memset(dp,0,sizeof(dp));
    for(end=2;end<=n;end++)
    {
    
    
        for(start = end-1;start>=1;start--)
        {
    
    
            dvalue = end - start;
            if(dvalue == 1) dp[start][end] = start;
            else
            {
    
    
                dp[start][end] = INT_MAX;
                for(pos = end-1; pos > start; pos--)
                    dp[start][end] = fmin(dp[start][end],fmax(pos+dp[pos+1][end],pos+dp[start][pos-1]));
            }
        }
    }
    return dp[1][n];
}

猜你喜欢

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