Leetcode - 不同路径 II(DP)
发布日期:2021-07-01 00:15:03 浏览次数:2 分类:技术文章

本文共 833 字,大约阅读时间需要 2 分钟。

题目描述

一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。

机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。

现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径?

网格中的障碍物和空位置分别用 1 和 0 来表示。

说明:m 和 的值均不超过 100。

示例 1:

输入:[  [0,0,0],  [0,1,0],  [0,0,0]]输出: 2解释:3x3 网格的正中间有一个障碍物。从左上角到右下角一共有 2 条不同的路径:1. 向右 -> 向右 -> 向下 -> 向下2. 向下 -> 向下 -> 向右 -> 向右

解题思路

这个和上次的不同路径()是差不多的,只要判断一下当前位置是否有障碍物,如果有那么就为0.

int uniquePathsWithObstacles(int** obstacleGrid, int obstacleGridRowSize, int obstacleGridColSize) {    int maxV[110] = {0};    maxV[0] = 1;    for (int i = 0; i < obstacleGridRowSize; i++) {        if (obstacleGrid[i][0])            maxV[0] = 0;        for (int j = 1; j < obstacleGridColSize; j++) {            if (obstacleGrid[i][j])               maxV[j] = 0;            else maxV[j] = maxV[j - 1] + maxV[j];        }    }    return maxV[obstacleGridColSize - 1];}

 

转载地址:https://lzyws739307453.blog.csdn.net/article/details/84299224 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Leetcode - 爬楼梯
下一篇:Leetcode - 不同路径(DP)

发表评论

最新留言

第一次来,支持一个
[***.219.124.196]2024年04月22日 16时23分08秒