题目描述:
    image.png
    image.png
    解析:dp 从右下往左上推

    1. class Solution {
    2. public int uniquePaths(int m, int n) {
    3. if (m == 1 || n == 1) {
    4. return 1;
    5. }
    6. int[][] dp = new int[m][n];
    7. for (int i = 0; i < m - 1; i++) {
    8. dp[i][n - 1] = 1;
    9. }
    10. for (int i = 0; i < n - 1; i++) {
    11. dp[m - 1][i] = 1;
    12. }
    13. int currRow = m - 2;
    14. int currColum = n - 2;
    15. while (currRow >= 0) { //保证行不越界
    16. dp[currRow][currColum] = dp[currRow + 1][currColum] + dp[currRow][currColum + 1];
    17. currColum--;
    18. if (currColum < 0) { //表示列越界
    19. currRow--;
    20. currColum = n - 2;
    21. }
    22. }
    23. return dp[0][0];
    24. }
    25. }