1. dp
设dp[i][j]
为从左上角到(i, j)
位置的路径条数。
dp[i][j] = dp[i][j - 1] + dp[i - 1][j]
时间O(mn)
,空间O(mn)
但可以优化到O(n)
。
1 2 3 4 5 6 7 8 9 10 11
| class Solution { public: int uniquePaths(int m, int n) { vector<int> dp(n, 1); for (int i = 1; i < m; i++) for (int j = 1; j < n; j++) dp[j] += dp[j - 1]; return dp[n - 1]; } };
|