LeetCode 63. Unique Paths II Java

题目:

Follow up for "Unique Paths":

Now consider if some obstacles are added to the grids. How many unique paths would there be?

An obstacle and empty space is marked as 1 and 0 respectively in the grid.

For example,

There is one obstacle in the middle of a 3x3 grid as illustrated below.

[
  [0,0,0],
  [0,1,0],
  [0,0,0]
]

The total number of unique paths is 2.

Note: m and n will be at most 100.

题意:给出一个二维格子,其中值为1的点表示障碍点,要求求出从最左上角的点到最右下角的点有多少种走法。使用动态规划,对于其中一个点obstacleGrid[i][j](1<i<m,i<j<n),到该点的走法为d(obstacleGrid[i][j])=d(obstacleGrid[i-1][j])+d(obstacleGrid[i][j-1]),对于第一行和第一列,如果该点前面有障碍点,那么到到此点有0中方法,反之为1。遍历数组即可求解。

代码:

public class Solution {

	public int uniquePathsWithObstacles(int[][] obstacleGrid) {

		int m=obstacleGrid.length;	//行
		int n=0;		//列
		if(m!=0)
			n=obstacleGrid[0].length;

		int[][] A=new int[m][n];		//用户记录起点到当前点走法
		for(int i=0;i<m;i++){
			for(int j=0;j<n;j++){
				if(obstacleGrid[i][j]==1)		//如果一个点障碍点,则到该点的只有0中方法
					A[i][j]=0;
				else{
					if(i==0||j==0){		//如果是第一列或者第一行 ,若该点前面有障碍点,那么改点也是不可以达到的
						boolean obstracle=false;
						if(i==0){
							for(int k=0;k<j;k++){
								if(obstacleGrid[i][k]==1)
									obstracle=true;
							}
						}
						else if(j==0){
							for(int k=0;k<i;k++){
								if(obstacleGrid[k][j]==1)
									obstracle=true;
							}
						}
						if(obstracle)
							A[i][j]=0;
						else A[i][j]=1;

					}else A[i][j]=A[i-1][j]+A[i][j-1];
				}
			}
		}
		return A[m-1][n-1];
	}
}

  

时间: 2024-11-18 11:55:01

LeetCode 63. Unique Paths II Java的相关文章

LeetCode --- 63. Unique Paths II

题目链接:Unique Paths II Follow up for "Unique Paths": Now consider if some obstacles are added to the grids. How many unique paths would there be? An obstacle and empty space is marked as 1 and 0 respectively in the grid. For example, There is one

leetCode 63.Unique Paths II (唯一路径II) 解题思路和方法

Unique Paths II Follow up for "Unique Paths": Now consider if some obstacles are added to the grids. How many unique paths would there be? An obstacle and empty space is marked as 1 and 0 respectively in the grid. For example, There is one obsta

63. Unique Paths II java solutions

Follow up for "Unique Paths": Now consider if some obstacles are added to the grids. How many unique paths would there be? An obstacle and empty space is marked as 1 and 0 respectively in the grid. For example, There is one obstacle in the middl

LeetCode: 63. Unique Paths II(Medium)

1. 原题链接 https://leetcode.com/problems/unique-paths-ii/description/ 原文地址:https://www.cnblogs.com/huiAlex/p/8437069.html

&lt;LeetCode OJ&gt; 63. Unique Paths II

63. Unique Paths II My Submissions Question Total Accepted: 55136 Total Submissions: 191949 Difficulty: Medium Follow up for "Unique Paths":紧接着上一题"唯一路劲",现在考虑有一些障碍在网格中,无法到达,请重新计算到达目的地的路线数目 Now consider if some obstacles are added to the

LeetCode开心刷题二十九天——63. Unique Paths II**

63. Unique Paths II Medium 938145FavoriteShare A robot is located at the top-left corner of a m x n grid (marked 'Start' in the diagram below). The robot can only move either down or right at any point in time. The robot is trying to reach the bottom

【Leetcode】Unique Paths II

Follow up for "Unique Paths": Now consider if some obstacles are added to the grids. How many unique paths would there be? An obstacle and empty space is marked as 1 and 0 respectively in the grid. For example, There is one obstacle in the middl

63. Unique Paths II(js)

63. Unique Paths II A robot is located at the top-left corner of a m x n grid (marked 'Start' in the diagram below). The robot can only move either down or right at any point in time. The robot is trying to reach the bottom-right corner of the grid (

[LeetCode][JavaScript]Unique Paths II

Unique Paths II Follow up for "Unique Paths": Now consider if some obstacles are added to the grids. How many unique paths would there be? An obstacle and empty space is marked as 1 and 0 respectively in the grid. For example, There is one obsta