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]<<" ";
}
}
}