zoukankan      html  css  js  c++  java
  • 63. Unique Paths II

        /*
         * 63. Unique Paths II
         * 12.20 by Mingyang
         * 这里是二维DP,需要注意的是i是从1到m,j是从1到n,这里i与j没有联系。
         * 然后二维的n m分别是长与宽
         */
        public int uniquePathsWithObstacles(int[][] obstacleGrid) {
            int m = obstacleGrid.length;
            int n = obstacleGrid[0].length;
            if (m == 0 || n == 0)
                return 0;
            if (obstacleGrid[0][0] == 1 || obstacleGrid[m - 1][n - 1] == 1)
                return 0;
            int[][] dp = new int[m][n];
            dp[0][0] = 1;
            for (int i = 1; i < n; i++) {
                if (obstacleGrid[0][i] == 1)
                    dp[0][i] = 0;
                else
                    dp[0][i] = dp[0][i - 1];
            }
            for (int i = 1; i < m; i++) {
                if (obstacleGrid[i][0] == 1)
                    dp[i][0] = 0;
                else
                    dp[i][0] = dp[i - 1][0];
            }
            for (int i = 1; i < m; i++) {
                for (int j = 1; j < n; j++) {
                    if (obstacleGrid[i][j] == 1)
                        dp[i][j] = 0;
                    else
                        dp[i][j] = dp[i][j - 1] + dp[i - 1][j];
                }
            }
            return dp[m - 1][n - 1];
        }
  • 相关阅读:
    8086标志
    微内核
    枚举算法
    ajax
    面向对象技术概述
    ajax
    存储技术
    自然数组排列
    将搜索二叉树转换成双向链表
    在单链表中删除指定值的节点
  • 原文地址:https://www.cnblogs.com/zmyvszk/p/5472504.html
Copyright © 2011-2022 走看看