(动态规划路径基础 最小路径和)leetcode 64

视频教程

1.初始化dp数组,初始化边界

2、从[1行到n-1行][1列到m-1列]依次赋值

#include<vector>
#include<algorithm>
#include <iostream>

using namespace std;
int main()
{
    vector<vector<int>> grid = { {1,3,1},{1,5,1},{4,2,1} };
    
    vector<vector<int>> dp(grid.size(), vector<int>(grid[0].size(), 0));
    dp[0][0] = grid[0][0];
    for (int i = 1;i < grid[0].size();i++)
    {
        dp[0][i] = grid[0][i] + dp[0][i-1];
    }
    for (int i = 1;i < grid.size();i++)
    {
        dp[i][0] = grid[i][0] + dp[i-1][0];
    }

    for (int i = 1;i < grid.size();i++)
    {
        for (int j = 1;j < grid[0].size();j++)
        {
            dp[i][j] = min(dp[i - 1][j], dp[i][j - 1])+grid[i][j];


        }
  }
    cout << dp[grid.size()-1][grid[0].size() - 1] << endl;
    for (int i = 0;i < dp.size();i++)
    {
        for (auto n : dp[i])
        {
            cout << n<<" ";
        }
        cout << endl;
   }
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值