博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[]leetcode]Unique Paths II
阅读量:5935 次
发布时间:2019-06-19

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

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

题目大意

寻求最短路径,从左上走到右下,保证每次只能往左走或往下走(不可以斜着走)。其中数字1是障碍,表示“此路不通”,求总共的路线数

思路
   1. 如果没有障碍

val[i][0] = 1 val[0][j] = 1 val[i][j] = val[i-1][j] + val[i][j-1] 2. 有了障碍后 如果obstacle[i][j] = 1      val[i][j] = 1 否则      tmp = obstacle[i-1][j] == 1 ? 0 : val[i-1][j]      tmp = obstacle[i][j-1] == 1 ? tmp : tmp + val[i-1][j-1]    val[i][j] = tmp 参考代码
class Solution {public:    int uniquePathsWithObstacles(vector
> &obstacleGrid) { int row = obstacleGrid.size(); int col = obstacleGrid[0].size(); int token = 1; int val[row][col]; for (int j = 0; j < col; ++j) { if(obstacleGrid[0][j] == 1) token = 0; val[0][j] = token; } token = 1; for (int i = 0; i < row; ++i) { if(obstacleGrid[i][0] == 1) token = 0; val[i][0] = token; } for (int i = 1; i < row; ++i) { for(int j = 1; j < col; ++j) { if (obstacleGrid[i][j] == 1) val[i][j] = 0; else { int tmp = obstacleGrid[i-1][j] == 1 ? 0 :val[i-1][j]; tmp = obstacleGrid[i][j-1] == 1 ? tmp : tmp + val[i][j-1]; val[i][j] = tmp; } } } return val[row-1][col-1]; }};

 

 

转载地址:http://tnctx.baihongyu.com/

你可能感兴趣的文章
React Native 屏幕适配(炒鸡简单的方法)
查看>>
Mac High Sierra版本中“已损毁,打不开。您应该将它移到废纸篓”问题的解决办法...
查看>>
关于 nginx 前端知道这些就够了
查看>>
Golang Gin实践 连载十二 优化配置结构及实现图片上传
查看>>
jCasbin:支持MAC、RBAC、ABAC多种模型的Java权限管理框架
查看>>
多线程基础必要知识点!看了学习多线程事半功倍
查看>>
laravel 内容理解和摘要
查看>>
订阅号页面偷取微信用户信息(unionId),-_-
查看>>
PHP SPL 笔记
查看>>
HTML、CSS笔记
查看>>
让前端攻城师独立于后端进行开发: Mock.js
查看>>
golang通用连接池的实现
查看>>
zookeeper和etcd有状态服务部署实践
查看>>
从koa-session中间件源码学习cookie与session
查看>>
事件处理---事件等级模型,捕获,冒泡,默认事件。
查看>>
ERP物理机迁移至阿里云实践
查看>>
30-seconds-code——string
查看>>
vue入坑笔记(持续更新)
查看>>
webpack选择性编译DefinePlugin(打包自动剔除测试数据)
查看>>
Sequelize 中文文档 v4 - Transactions - 事务
查看>>