Leetcode第四单元的LeetCode题解算法提高之LeetCode刷题

62.不同的路径

2018-03-28  本文已影响10人  第四单元

题目

机器人位于一个m*n网络的左上角,在(0,0)位置start,机器人每次只能向下或者向右移动一步。机器人视图达到网格的左下角(m-1,n-1)位置,问有多少条不同路径。

思路

动态规划思想

定义状态

dp[i][j] = 机器人到达(i,j)位置的路径数

状态转移

dp[i][j] = dp[i-1][j] + dp[i][j-1] (i,j不超边界)

初始化

首行、首列所有位置都只有一条路径。
dp[i][0] = 1;
dp[o][j] = 1;

AC的代码

class Solution {
    public int uniquePaths(int m, int n) {
        int[][] dp = new int[m][n];
        for(int i = 0; i < m; i++)
            dp[i][0] = 1;
        for(int j = 0; j < n; j++)
            dp[0][j] = 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];
    }
}
上一篇 下一篇

猜你喜欢

热点阅读