题解 | #走方格的方案数#
走方格的方案数
https://www.nowcoder.com/practice/e2a22f0305eb4f2f9846e7d644dba09b
#include <iostream>
#include <vector>
using namespace std;
class Solution{
public:
int path_cnt(int n, int m){
vector<vector<int>> dp(n+2, vector<int> (m+2, 0)); // 要留出一个空行
for (int i = 1; i < n+2; i++) dp[i][1] = 1;
for (int j = 1; j < m+2; j++) dp[1][j] = 1;
for (int i = 2; i <= n+1; i++){
for (int j = 2; j <= m+1; j++){
dp[i][j] = dp[i-1][j-1]*2 + dp[i-2][j] + dp[i][j-2]; // 左边,上变,对角过来
}
}
return dp[n+1][m+1];
}
};
int main() {
int n,m;
cin >> n >> m;
Solution res;
cout << res.path_cnt(n, m) << endl;
return 0;
}
查看10道真题和解析
上海得物信息集团有限公司公司福利 1251人发布