代码随想录算法训练营第39天| 动态规划

62.不同路径 /63. 不同路径 II

前言:
63是在62的基础上做了延展,加入了"障碍"的概念;
总的来讲,还是要把握好地推公式才行;
要抓住题目的"只能向左和向下",思路就来了
: 力扣题目链接

思路:

代码随想录给出来三种不同的方法,分别是深度搜索、动态规划、数论(数学知识).
这里主要来看动态规划;
具体内容看链接: 代码随想录-62.不同路径
补充,想获得规律,先从最基础最简单的情况入手,比如就找一个2x2的方格
在这里插入图片描述在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
可得出规律:
1.方格中数字意思是"有多少条路径走到这边"
2.靠边上 的格子,只能从左边或者上边走过来(所以只有一种路径,一条路走到黑)在这里插入图片描述

3.某个格子,只能从他上面或者左面过来,没有其他的路径
这样可以得到第4条推论:
(i,j)的路径个数为(i-1,j)+(i,j-1)

下面这个就更明显了
在这里插入图片描述

63. 不同路径 II

具体细节看
要理解这个问题看 l代码随想录-63. 不同路径 II
这个题主要是要

在这里插入代码片

#二维数组
注意:要确定好二维 vector的的(长和宽),这一点我总是迷糊;

//要注意在,计算机当中并没有所谓的行/列
    void vectortest(int m,int n){
         vector<vector<int>> vec(m,vector<int>(n,0));
         cout<<vec[0].size()<<endl;
         cout<<vec.size()<<endl;
         /*
		输入:  vectortest(2,10);
		打印:
         2
         10
         */

        for(int i=0;i<m;i++){
             cout<<endl;
             for(int j=0;j<n;j++){
                 vec[i][j]=(i+1)*(j+1);
                 cout<<vec[i][j]<<" ";
             }

         }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值