博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
leetcode 63 不同的路径2
阅读量:6363 次
发布时间:2019-06-23

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

描述:

从左上角走到右下角,中间可能有若干阻碍;

题目给出一个矩阵,0表示可以走,1表示有障碍。

 

解决:

思路同第一题,只是如果上面或左边有障碍,自身不一定能走,注意些边界条件即可,复杂度仍是m*n。

为了防止和真正的路径1冲突,走过的障碍改为-1。

int uniquePathsWithObstacles(vector
>& obstacleGrid) { int m = obstacleGrid.size(); int n = obstacleGrid[0].size(); for (int i = 0; i < m; ++i) { for (int j = 0; j < n; ++j) { if (obstacleGrid[i][j] == 1) { obstacleGrid[i][j] = -1; continue; } if (i == 0 && j == 0) obstacleGrid[0][0] = 1; else if (i == 0) obstacleGrid[0][j] = obstacleGrid[0][j - 1]; else if (j == 0) obstacleGrid[i][0] = obstacleGrid[i - 1][0]; else if (obstacleGrid[i - 1][j] == -1 && obstacleGrid[i][j - 1] == -1) obstacleGrid[i][j] = -1; else if (obstacleGrid[i - 1][j] == -1) obstacleGrid[i][j] = obstacleGrid[i][j - 1]; else if (obstacleGrid[i][j - 1] == -1) obstacleGrid[i][j] = obstacleGrid[i - 1][j]; else if (obstacleGrid[i][j] == 1) obstacleGrid[i][j] = -1; else obstacleGrid[i][j] = obstacleGrid[i - 1][j] + obstacleGrid[i][j - 1]; } } if (obstacleGrid[m - 1][n - 1] == -1) return 0; return obstacleGrid[m - 1][n - 1];}

 

转载于:https://www.cnblogs.com/willaty/p/8119857.html

你可能感兴趣的文章
SCRM火了,SaaS服务再现新风口
查看>>
苹果是否步思科后尘折戟中国
查看>>
漏洞预警!微软曝光震网三代漏洞,隔离网面临重大危机
查看>>
协鑫集成第二批1000台E-KwBe光伏储能设备即将启运澳洲
查看>>
爱立信物联网广州路演
查看>>
云计算企业业绩分化明显 9家上市公司中期预喜
查看>>
《VMware Virtual SAN权威指南(原书第2版)》一3.5 可能发生的网络配置问题
查看>>
SK电讯发布Q2财报 净利润同比下降26.9%
查看>>
零售品牌如何驾驭大数据主导商业决策?
查看>>
经济模式UPS在数据中心的应用(上)
查看>>
Intel首款32核Xeon E5 v5跑分曝光:史上最强
查看>>
中国基于国产龙芯处理器的大数据一体机
查看>>
物联网影响商业发展三要素
查看>>
干货分享-FASTJSON那些事.pptx
查看>>
Digital Realty公司在美国的数据中心全部采用风电
查看>>
China Unicom and Chunghwa Telecom work together&nb
查看>>
Java图片上查找图片算法
查看>>
Python fabric实现远程操作和部署
查看>>
详解Java中staitc关键字
查看>>
《Unity着色器和屏幕特效开发秘笈》—— 第3章 利用镜面反射让游戏闪耀起来...
查看>>