题解 | #最小三角路径和#

最小三角路径和

https://www.nowcoder.com/practice/cc6afb95517f460cb785397c36ae4a9b

知识点

多维路径动态规划

思路

我们可以考虑反向转移,dp[i][j]代表从最后一行到达第i行第j列的最小代价,dp[0][0]即为所求(注意下标从0开始)。

转移方程:由题意,当前位置dp[i][j],只能由dp[i+1][j]和dp[i+1][j+1]转移过来。还要再加上自身的花费:

dp[i][j]=min(dp[i+1][j],dp[i+1][j+1])+cows[i][j];

初始化:最后一行直接初始化为cows的最后一行

代码

class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param cows int整型vector<vector<>> 
     * @return int整型
     */
    int minimumTotal(vector<vector<int> >& cows) {
        int dp[1005][1005];
        int n=cows.size();
        for(int i=0;i<n;i++)
        {
            dp[n-1][i]=cows[n-1][i];
        }
        for(int i=n-2;i>=0;i--)
        {
            for(int j=0;j<=i+1;j++)
            {
                dp[i][j]=min(dp[i+1][j],dp[i+1][j+1])+cows[i][j];
            }
        }
        cout<<dp[0][0]<<endl;
        return dp[0][0];
    }
};
全部评论

相关推荐

下个早班:秒挂就是不缺人
点赞 评论 收藏
分享
点赞 评论 收藏
分享
就在我现在公司的隔壁每天经过都唏嘘不已(就是羡慕)什么时候可以到这里上班啊
柯基在debug:从大学毕业投简历到现在了,应届的时候我都面到终面了,现在工作四年了连简历初筛都过不了了
投递莉莉丝游戏等公司8个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务