题解 | 不同路径的数目(一)
不同路径的数目(一)
https://www.nowcoder.com/practice/166eaff8439d4cd898e3ba933fbc6358?tpId=295&tqId=685&sourceUrl=%2Fexam%2Foj%3FquestionJobId%3D10%26subTabName%3Donline_coding_page
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param m int整型
* @param n int整型
* @return int整型
*/
int uniquePaths(int m, int n) {
vector<vector<int>> dp(m + 1, vector<int>(n, 1));
for (int i = 1; i < m; i++) {
for (int j = 1; j < n; j++) {
dp[i][j] = dp[i - 1][j] + dp[i][j - 1];
}
}
return dp[m - 1][n - 1];
}
};
其实也是简单的组合问题 路径数 = C(m+n-2, m-1) = C(m+n-2, n-1)
动态规划 空间换时间 文章被收录于专栏
动态规划通常用于求解最优解问题, 动态规划算法与分治法类似,其基本思想也是将待求解问题分解成若干子问题,先求解子问题, 然后从这些子问题的解得到原问题的解。与分治法不同的是,适合于用动态规划求解的问题, 经分解得到的子问题往往不是互相独立的。