经典的DP问题

走方格的方案数

http://www.nowcoder.com/questionTerminal/e2a22f0305eb4f2f9846e7d644dba09b

import java.io.*;
import java.util.*;

public class Main{
    public static void main(String[] args) throws Exception{
        Scanner sc = new Scanner(System.in);
        while(sc.hasNext()){
            int n = sc.nextInt();
            int m = sc.nextInt();
            int[][] dp = new int[n + 1][m + 1];
            for(int i = 0; i <= n; ++i){
                for(int j = 0; j <= m ; ++j){
                    if(i == 0 || j == 0){
                        dp[i][j] = 1;
                    }else{
                        dp[i][j] = dp[i][j - 1] + dp[i - 1][j];
                    }
                }
            }
            System.out.println(dp[n][m]);
        }
    }
}
全部评论
因为是沿着边缘线走 所以是格子数+1 的数组 并不是踩着格子走
点赞 回复 分享
发布于 2022-09-14 21:07 浙江
根本是无效动态规划
点赞 回复 分享
发布于 2022-03-19 21:11
题目给的输入案例,可以翻推出。 题目输入(1,2)-> 3,可以推出 网格应该是这样{[0,0,0],[0,0,0]}
点赞 回复 分享
发布于 2021-09-11 18:47
为什么要申请m+1和n+1个空间呢,我觉得应该是 m 和 n 的二维数组
点赞 回复 分享
发布于 2021-04-04 20:00

相关推荐

2025-11-19 18:44
已编辑
成都理工大学 Java
程序员花海:我面试过100+校招生,大厂后端面试不看ACM,竞赛经历含金量低于你有几份大厂实习 这个简历整体来看不错 可以海投
如何写一份好简历
点赞 评论 收藏
分享
评论
7
2
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务