题解 | #不同路径的数目(二)#

不同路径的数目(二)

http://www.nowcoder.com/practice/2bbfd075fbde4884b9da80634e1cae7c

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param obstacleGrid int整型ArrayList<ArrayList<>> 
     * @return int整型
     */
    public int uniquePathsWithObstacles(ArrayList<ArrayList<Integer>> obstacleGrid) {
        // write code here
        int m = obstacleGrid.size();
        int n = obstacleGrid.get(0).size();

        if (1 == m && 1 == n && obstacleGrid.get(0).get(0) == 0) {
            return 0;
        }

        int[][] paths = new int[m][n];
        paths[0][0] = 1;
        for (int currentY = 1; currentY < n; currentY++) {
            if (obstacleGrid.get(0).get(currentY) == 0) {
                break;
            }
            paths[0][currentY] = 1;
        }
        for (int currentX = 1; currentX < m; currentX++) {
            if (obstacleGrid.get(currentX).get(0) == 0) {
                break;
            }
            paths[currentX][0] = 1;
        }
        for (int currentX = 1; currentX < m; currentX++) {
            for (int currentY = 1; currentY < n; currentY++) {
                if (obstacleGrid.get(currentX).get(currentY) == 0) {
                    paths[currentX][currentY] = 0;
                } else {
                    paths[currentX][currentY] = paths[currentX - 1][currentY] + paths[currentX][currentY - 1];
                }
            }
        }
        return paths[m - 1][n - 1];
    }
}
全部评论

相关推荐

不愿透露姓名的神秘牛友
11-27 10:46
点赞 评论 收藏
分享
三年之期已到我的offer快到碗里来:9硕都比不上9本
点赞 评论 收藏
分享
牛舌:如果我不想去,不管对方给了多少,我一般都会说你们给得太低了。这样他们就会给下一个offer的人更高的薪资了。
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务