LeetCode Daily Problem - 20220801

机器人位于一个m x n网格的左上角,目标是到达右下角。机器人每次只能向下或向右移动。该问题使用动态规划求解,到达(m, n)的路径数等于到达(m-1, n)和(m, n-1)的路径数之和。示例给出了不同情况下的解决方案。" 111300676,8559484,Oracle存储过程中的动态SQL游标操作,"['Oracle数据库', 'SQL', '数据库开发', '数据库管理', 'PL/SQL']
摘要由CSDN通过智能技术生成

62. Unique Paths

There is a robot on an m x n grid. The robot is initially located at the top-left corner (i.e., grid[0][0]). The robot tries to move to the bottom-right corner (i.e., grid[m - 1][n - 1]). The robot can only move either down or right at any point in time.

Given the two integers m and n, return the number of possible unique paths that the robot can take to reach the bottom-right corner.

The test cases are generated so that the answer will be less than or equal to 2 * 10^9.

Example 1:

Input: m = 3, n = 7
Output: 28

Example 2:

Input: m = 3, n = 2
Output: 3
Explanation: From the top-left corner, there are a total of 3 ways to reach the bottom-right corner:
1. Right -> Down -> Down
2. Down -> Down -> Right
3. Down -> Right -> Down
My Solution:

經典動態規劃題目,分解成子問題,只能從右邊或者上面到達終點,表示到達(m, n)點的方法有(m-1, n)+(m, n-1),表示成S(m,n)=S(m-1,n)+S(m,n-1),代碼如下:

/**
 * @Author: Owen
 * @Date: 2022/7/31 15:50
 * @Description:
 */
public class Solution {
    public int uniquePaths(int m, int n) {
        int[][] res = new int[m+1][n+1];
        // base state
        for (int i=1; i <=m; i++){
            res[i][1] = 1;
        }
        for (int i=1; i <=n; i++){
            res[1][i] = 1;
        }
        for (int i=2; i <= m; i++){
            for (int j=2; j <= n; j++){
                res[i][j] = res[i-1][j] + res[i][j-1];
            }
        }
        return res[m][n];
    }
}
LC 62 - 2022.8.1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值