题解 | #求路径#

求路径

http://www.nowcoder.com/practice/166eaff8439d4cd898e3ba933fbc6358

方法一:递归

 public int uniquePaths (int m, int n) {
        // write code here
        int sum = 0;
        sum = search(1,1,m,n);
        return sum;
    }
    public int search(int row,int col,int m,int n){
        if (row == m && col == n)
            return 1;
        if (row == m)
            return search(row,col+1,m,n);
        if (col == n)
            return search(row+1,col,m,n);
        return search(row+1,col,m,n) + search(row,col+1,m,n);
    }

可惜超时了。。。

方法二:动态规划

public int uniquePaths (int m, int n) {
        // write code here
       int[][] dp = new int[m+1][n+1];    //题意下标从1开始
        for (int i = 1; i <= m; i++){
            dp[i][1] = 1;    //初始化边界
        }
        for (int i = 1; i <= n; i++){
            dp[1][i] = 1;    //初始化边界 
        }
        for (int i = 2; i <= m; i++){
            for (int j = 2; j <= n; j++){
                dp[i][j] = dp[i-1][j] + dp[i][j-1];    //当前位置到达的方式等于左一格的到达方式加上上一格的到达方式
            }
        }
        return dp[m][n];    //dp存的是当前位置的所有路径
    }
全部评论

相关推荐

hso_:哈哈哈哈哈哈我没offer一样在同一道题开喷了
投递深圳同为数码等公司10个岗位
点赞 评论 收藏
分享
offer多多的六边形战士很无语:看了你的博客,感觉挺不错的,可以把你的访问量和粉丝数在简历里提一下,闪光点(仅个人意见)
点赞 评论 收藏
分享
1 收藏 评论
分享
牛客网
牛客企业服务