动态规划题目需要找到两点:

    • 动态方程:动态方程抽离问题的共同解决方程
    • 边界情况:相当于对于上述动态方程的特殊情况的枚举
    1. /**
    2. * @param {number} m
    3. * @param {number} n
    4. * @return {number}
    5. */
    6. var uniquePaths = function(m, n) {
    7. let arr = new Array(m).fill(0).map(() => new Array(n).fill(0))
    8. // 边界情况
    9. for (let i = 0; i<m; i++) arr[i][0] = 1
    10. for (let i = 0; i<n; i++) arr[0][i] = 1
    11. // 动态方程
    12. for (let i = 1; i<m; i++) {
    13. for (let j = 1; j<n; j++) {
    14. arr[i][j] = arr[i-1][j] + arr[i][j-1]
    15. }
    16. }
    17. return arr[m-1][n-1]
    18. };

    image.png