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

视频教程

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

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

cpp 复制代码
#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;
}
相关推荐
dog25014 分钟前
BBR 的 buffer 动力学观感
人工智能·算法
冲帕Chompa3 小时前
图论part10 bellman_ford算法
数据结构·算法·图论
緈福的街口3 小时前
【leetcode】144. 二叉树的前序遍历
算法·leetcode
GG不是gg3 小时前
排序算法之基础排序:冒泡,选择,插入排序详解
数据结构·算法·青少年编程·排序算法
随意起个昵称3 小时前
【双指针】供暖器
算法
倒霉蛋小马3 小时前
最小二乘法拟合直线,用线性回归法、梯度下降法实现
算法·最小二乘法·直线
codists4 小时前
《算法导论(第4版)》阅读笔记:p82-p82
算法
埃菲尔铁塔_CV算法4 小时前
深度学习驱动下的目标检测技术:原理、算法与应用创新
深度学习·算法·目标检测
Dream it possible!4 小时前
LeetCode 热题 100_寻找重复数(100_287_中等_C++)(技巧)(暴力解法;哈希集合;二分查找)
c++·leetcode·哈希算法
float_com4 小时前
【背包dp-----分组背包】------(标准的分组背包【可以不装满的 最大价值】)
算法·动态规划