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

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

那么上述问题,假设这个矩阵堵塞障碍,不能在若干组合前面所用的方法,因为这么多的位置实际上是没有办法的事儿。

还有剩下的唯一合理的解决方案dp该。与最低要求,并且等,从右下角以前突起,对于位置(i, j),它的动作应该是(i+1, j)和(i, j+1)走法的和。对于边界条件还是有一些特殊,最后一行。从右往左,假设是0的话没有问题。等于右側走法的个数。一旦遇到一个1。那么它以及它左边的走法都必须置成0,你可没有穿墙术。

我认为题目明白说明了行列的个数,就是在暗示我们能够使用dp的方法,行列个数不大,空间直接开了也能够,也能够仅仅保存下一行和右一列的。

class Solution {public:    int row, col;    int uniquePathsWithObstacles(vector
> &obstacleGrid) { row = obstacleGrid.size(); if(row == 0) return 0; col = obstacleGrid[0].size(); int p[105][105]; p[row-1][col-1] = obstacleGrid[row-1][col-1] == 0?

1:0; int i, j; for(j=col-2;j>=0;--j){ if(obstacleGrid[row-1][j] == 0) p[row-1][j] = p[row-1][j+1]; else break; } for(i=j;i>=0;--i) p[row-1][i] = 0; for(j=row-2;j>=0;--j){ if(obstacleGrid[j][col-1] == 0) p[j][col-1] = p[j+1][col-1]; else break; } for(i=j;i>=0;--i) p[i][col-1] = 0; for(i=row-2;i>=0;--i){ for(j=col-2;j>=0;--j){ if(obstacleGrid[i][j] == 1) p[i][j] = 0; else p[i][j] = p[i][j+1] + p[i+1][j]; } } return p[0][0]; } };

版权声明:本文博主原创文章,博客,未经同意不得转载。

你可能感兴趣的文章
你不知道的Virtual DOM(二):Virtual Dom的更新
查看>>
SQLServer之创建主XML索引
查看>>
微服务用户登录认证授权设计
查看>>
react实现页面切换动画效果
查看>>
React 开发你一定要知道
查看>>
(入门)手把手带你更简单的使用dva
查看>>
ajax的原生实现-XMLHttpRequest
查看>>
【Redis学习笔记】2018-07-03 redis源码学习 quicklist
查看>>
聊聊spring cloud netflix的HystrixCommands
查看>>
JS高程中的垃圾回收机制与常见内存泄露的解决方法
查看>>
css布局方法
查看>>
Java日期类分析
查看>>
我的wepy初始化模板和一个指南,欢迎提建议和意见
查看>>
CentOS 6.5搭建ELK环境ElasticSearch+Kibana+Logstash
查看>>
Webpack 是如何加载模块的
查看>>
Python每日一练0013
查看>>
lodash源码乱读-drop后的故事(toNumber)
查看>>
cordova整合vue之后,引入极光推送插件,成功推送
查看>>
(转载)如何写出正确的二分查找?——利用循环不变式理解二分查找及其变体的正确性以及构造方式...
查看>>
3.Vue非父子组件之间的通信
查看>>