leetCode刷题归纳-Dynamic Programming( 63. Unique Paths II)
来源:互联网 发布:提取背景音乐的软件 编辑:程序博客网 时间:2024/04/27 07:29
题目描述
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.
解题思路
跟上一篇博客那个unique一样的场景设置,现在的问题变成了,多了一些障碍物,意思就是说有的路走不通了怎么办?
我的想法是,仍然是采取动态规划的办法,状态方程和之前那题是一样的,只需要在障碍点更新状态值就行了(直接将当前状态值重置为0),走不通的路会在更新的过程中被算法自动舍弃(置为0就是舍弃之前所有的unique,因为遇到障碍点,之前所有的unique path都没有意义了)。
class Solution {public: int uniquePathsWithObstacles(vector<vector<int>>& obstacleGrid) { int m=obstacleGrid.size(),n=obstacleGrid[0].size(); vector<int>cur(m,0); for(int i=0;i<m;i++){ if(obstacleGrid[i][0]==1) break;//初始化第一列的值,如果发生了阻断下面的可能路径数都是0 cur[i]=1; } for(int j=1;j<n;j++){ if(obstacleGrid[0][j]==1) cur[0]=0;//如果顶端就发生了障碍的处理 for(int i=1;i<m;i++){ if(obstacleGrid[i][j]==1) cur[i]=0;//如果发生了阻断的处理 else cur[i]+=cur[i-1]; } } return cur[m-1]; }};
阅读全文
0 0
- leetCode刷题归纳-Dynamic Programming( 63. Unique Paths II)
- leetCode刷题归纳-Dynamic Programming(62. Unique Paths)
- [Leetcode刷题总结系列][Dynamic Programming]63. Unique Paths II
- (M)Dynamic Programming:63. Unique Paths II
- [Leetcode刷题总结系列][Dynamic Programming]62. Unique Paths
- LeetCode/Dynamic Programming/Unique Paths
- 【算法】【Dynamic Programming】Unique Paths II
- [week 12][Leetcode][Dynamic Programming] Unique Paths
- Dynamic Programing -- Leetcode problem 63. Unique Paths II
- [leetcode刷题系列]Unique Paths II
- LeetCode刷题笔录Unique Paths II
- 【算法】【Dynamic Programming】Unique Paths
- LeetCode --- 63. Unique Paths II
- LeetCode 63.Unique Paths II
- [leetcode] 63.Unique Paths II
- [leetcode] 63.Unique Paths II
- Leetcode 63. Unique Paths II
- LeetCode 63. Unique Paths II
- pollard's p-1算法实现(使用GMP库)
- struts2获取请求参数-----属性驱动3种
- 实现文本相似度算法(余弦定理)
- linux中任务调度命令crontab的使用
- AsyncChannel使用和原理
- leetCode刷题归纳-Dynamic Programming( 63. Unique Paths II)
- 【代码积累-1】ActiveObject
- 9、Ubuntu 软件包管理&编程工具
- Tomcat部署项目的几种常见方式
- pydev配置
- windows中的java项目访问虚拟机中的redis
- Android TP驱动之(三)input
- Android新特性介绍,ConstraintLayout完全解析
- 四、2、JavaScript的垃圾收集