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 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.

思路:这题理解题意之后并不比上一题麻烦,只是我在刚开始的时候,没有完全想对思路。

在给第一行和第一列赋值时,如果有障碍了,则后面的则全部赋值为0,表示通不过。

具体代码如下:

public class Solution {
    public int uniquePathsWithObstacles(int[][] f) {
        if(f.length == 0 || f[0].length == 0 || f[0][0] > 0)
            return 0;
        //其余情况
        for(int i = 0; i < f.length; i++){
        	if(f[i][0] > 0){//如果有障碍,后面全部为0
        		while(i < f.length){
        			f[i++][0] = 0;
        		}
        	}else{
        		f[i][0] = 1;//没有障碍赋值为1
        	}
        }
        for(int i = 1; i < f[0].length; i++){//从i=1开始,因为f[0][0]值已经改变
        	if(f[0][i] > 0){//如果有障碍,后面全部为0
        		while(i < f[0].length){
        			f[0][i++] = 0;
        		}
        	}else{
        		f[0][i] = 1;
        	}
        }
        //循环走到最终点
        for(int i = 1; i < f.length; i++)
            for(int j = 1; j < f[0].length; j++){
                if(f[i][j] > 0)
                    f[i][j] = 0;//有障碍,设置0,表示不通
                else
                    f[i][j] = f[i-1][j] + f[i][j-1];
            }
        return f[f.length-1][f[0].length-1];
    }
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-12-07 20:23:37

leetCode 63.Unique Paths II (唯一路径II) 解题思路和方法的相关文章

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

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 (marked 'Finish' in t

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 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 m

LeetCode OJ:Unique Paths(唯一路径)

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 (marked 'Finish' in t

LeetCode: 63. Unique Paths II(Medium)

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

leetCode 71.Simplify Path(化简路径) 解题思路和方法

Simplify Path Given an absolute path for a file (Unix-style), simplify it. For example, path = "/home/", => "/home" path = "/a/./b/../../c/", => "/c" click to show corner cases. Corner Cases: Did you consider

leetCode 31.Next Permutation (下一个字典序排序) 解题思路和方法

Next Permutation Implement next permutation, which rearranges numbers into the lexicographically next greater permutation of numbers. If such arrangement is not possible, it must rearrange it as the lowest possible order (ie, sorted in ascending orde

leetCode 76.Minimum Window Substring(最小窗口子串) 解题思路和方法

Given a string S and a string T, find the minimum window in S which will contain all the characters in T in complexity O(n). For example, S = "ADOBECODEBANC" T = "ABC" Minimum window is "BANC". Note: If there is no such windo

leetCode 60.Permutation Sequence (排列序列) 解题思路和方法

The set [1,2,3,-,n] contains a total of n! unique permutations. By listing and labeling all of the permutations in order, We get the following sequence (ie, for n = 3): "123" "132" "213" "231" "312" "