题解 | 走方格的方案数

#牛客创作赏金赛# #刷题我是认真的#

解题思路:

  1. 有点难,之前很少刷动态规划的题型,难呀 😭
  2. 核心状态转移方程: dp[i][j]=dp[i−1][j]+dp[i][j−1],分解为从(i-1,j)点出发和从(i,j-1)点出发两种情况
  3. 具体分析见下图

import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        int m = in.nextInt();
        System.out.println(countWay(n, m));
    }
    // 状态转移方程: dp[i][j]=dp[i−1][j]+dp[i][j−1]
    public static int countWay(int n, int m) {
        int[][] dp = new int[n + 1][m + 1];
        for (int i = 0; i <= n; i++) {
            dp[i][0] =  1;
        }
        for (int j = 0; j <= m; j++) {
            dp[0][j] = 1;
        }
        for (int i = 1; i <= n; i++) {
            for (int j = 1; j <= m; j++) {
                dp[i][j] = dp[i-1][j]+dp[i][j-1];
            }
        }
        return dp[n][m];
    }
}

全部评论

相关推荐

01-07 07:54
已编辑
门头沟学院 前端工程师
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务