动态规划路径题目(C++)

打印 上一主题 下一主题

主题 523|帖子 523|积分 1569


前言

一、差别路径

62. 差别路径
1.状态表现

以[i,j]位置为末了,…
联合本道题木:dp[i,j]:以【i,j】位置为末了有多少条差别路径
2.状态转移方程

dp是什么
dp[j]=dp[ i ][ j-1 ]+dp[ i-1 ][ j ];
3.初始化

我们填表时,第一行和第一列必要举行初始化操作。
我们可以多开一行和一列,用捏造节点资助我们举行初始化。
   捏造节点:
1.捏造节点的值要包管填表是精确的
2.下标的映射
  我们这里可以给成0,而dp[ 0 ][ 1 ]位置给成1.
4.填表顺序

从左到右,从上到下
5.返回值是什么

返回dp[ m ][ n]
6.代码编写

  1. class Solution {
  2. public:
  3.     int uniquePaths(int m, int n)
  4.     {
  5.         vector<vector<int>>dp(m+1,vector<int>(n+1,0));
  6.         dp[0][1]=1;
  7.         for(int i=1;i<=m;i++)
  8.         {
  9.             for(int j=1;j<=n;j++)
  10.             {
  11.                 dp[i][j]=dp[i-1][j]+dp[i][j-1];
  12.             }
  13.         }
  14.         return dp[m][n];
  15.     }
  16. };
复制代码
二、下降路径最小和

931. 下降路径最小和
1.状态表现

列出dp表,dp表中值的含义是什么
dp[i,j]:到达[i,j]位置,所有下降路径中最小和
2.状态转移方程

dp是什么
dp[j] = min(dp[i - 1][j], min(dp[i - 1][j - 1], dp[i - 1][j +
1])) + matrix[j] 。
3.初始化

可以在最前⾯加上⼀个「辅助结点」,资助我们初始化。使⽤这种技巧要留意两个点:
i. 辅助结点⾥⾯的值要「包管后续填表是精确的」;
ii. 「下标的映射关系」。
在本题中,必要「加上⼀⾏」,而且「加上两列」。
所有的位置都初始化为⽆穷⼤,然后将第⼀行,初始化为 0 即可
4.填表顺序

填表的顺序是「从上往下」
5.返回值是什么

返回「 dp 表中末了⼀⾏的最⼩值」
6.代码编写

  1. class Solution {
  2. public:
  3.     int minFallingPathSum(vector<vector<int>>& matrix)
  4.     {
  5.         int n=matrix.size();
  6.         vector<vector<int>>dp(n+1,vector<int>(n+2,INT_MAX));
  7.         //第一行初始化为0
  8.         for(int i=0;i<n+2;i++)
  9.         {
  10.             dp[0][i]=0;
  11.         }
  12.         //填表
  13.         for(int i=1;i<=n;i++)
  14.         {
  15.             for(int j=1;j<=n;j++)
  16.             {
  17.                 dp[i][j]=min(min(dp[i-1][j-1],dp[i-1][j]),dp[i-1][j+1])+matrix[i-1][j-1];
  18.             }
  19.         }
  20.         //返回值
  21.         int remin=INT_MAX;
  22.         for(int j=0;j<=n+1;j++)
  23.         {
  24.             remin=min(remin,dp[n][j]);
  25.         }
  26.         return remin;
  27.     }
  28. };
复制代码
总结

以上就是本日要讲的内容。希望对各人的学习有所资助,仅供参考 如有错误请大佬辅导我会尽快去改正 接待各人来评论~~
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

前进之路

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表