LintCode_114 不同的路径,115 不同的路径 II
题目
有一个机器人的位于一个M×N个网格左上角(下图中标记为'Start')。
注意事项
n和m均不超过100
样例
| 1,1 | 1,2 | 1,3 | 1,4 | 1,5 | 1,6 | 1,7 |
| 2,1 | ||||||
| 3,1 | 3,7 |
以上3 x 7的网格中,有多少条不同的路径?
思路
dp的思路来解决
dp[0][j] = 1;
dp[i][0] = 1;
dp[i][j] = dp[i-1][j] + dp[i][j-1];
空间复杂度可以降低到O(n)
dp[i] = dp[i] + dp[i-1];
C++代码
int uniquePaths(int m, int n) {
// wirte your code here
vector<int> dp(n,);
for(int i = ; i < m; ++i)
{
for(int j = ; j < n; ++j)
{
dp[j] += dp[j - ];
}
}
return dp[n - ];
}
不同的路径 II
题目
"不同的路径" 的跟进问题:
现在考虑网格中有障碍物,那样将会有多少条不同的路径?
网格中的障碍和空位置分别用 1 和 0 来表示。
注意事项
m 和 n 均不超过100
样例
如下所示在3x3的网格中有一个障碍物:
[
[0,0,0],
[0,1,0],
[0,0,0]
]
一共有2条不同的路径从左上角到右下角。
思路
和前面差不多
if(s[i - 1][j] == 0 && s[i][j - 1] == 1) dp[i][j] = dp[i - 1][j];
if(s[i][j - 1] == 0 && s[i - 1][j] == 1) dp[i][j] = dp[i][j - 1];
else if(s[i - 1][j] == 0 && s[i][j - 1] == 0) dp[i][j] = 0;
else if(s[i - 1][j] == 1 && s[i][j - 1] == 1) dp[i][j] = dp[i - 1][j] + dp[i][j - 1];
C++代码
int uniquePathsWithObstacles(vector<vector<int> > &obstacleGrid) {
// write your code here
int m = obstacleGrid.size();
int n = obstacleGrid[].size();
vector<vector<int> > dp(m,vector<int>(n, ));
for(int i = ; i < m; ++i)
{
for(int j = ; j < n; ++j)
{
if(i == && j == ) dp[i][j] = ;
else if(i == )
{
dp[i][j] = dp[i][j - ];
}
else if(j == )
{
dp[i][j] = dp[i - ][j];
}
else if(obstacleGrid[i][j] != )
{
dp[i][j] = dp[i-][j] + dp[i][j-];
}
if(obstacleGrid[i][j] == )
{
dp[i][j] = ;
}
}
}
return dp[m-][n-];
}
LintCode_114 不同的路径,115 不同的路径 II的更多相关文章
- Python主文件路径和当前模块路径
主执行文件路径sys.argv[0] ...
- iOS开发——路径篇&混编路径与全局宏路径
混编路径与全局宏路径 最近在做东西的时候有一个地方要用到一个第三方库的,但是目前swift版的还没有找到,自己又不想写(其实是不会写),所以就想到了混编,但是中间出现了好多问题,其中印象最深的就是桥接 ...
- Java中windows路径转换成linux路径等工具类
项目中发现别人写好的操作系统相关的工具类: 我总结的类似相关博客:http://www.cnblogs.com/DreamDrive/p/4289860.html import java.net.In ...
- C#中网站根路径、应用根路径、物理路径、绝对路径,虚拟路径的区别
C#中网站根路径,请站点的最外一层 /表示 应用根路径 ~/表示,有时候C#程序路径并不是网站路径 物理路径 server.mappath("~/") 是指应用程序放在服务器硬盘的 ...
- [js高手之路] html5 canvas系列教程 - 开始路径beginPath与关闭路径closePath详解
路径在canvas绘图中,经常被用到,是一个非常重要的概念. 比如:我们要在canvas画出3条直线,要求用不同的颜色加以区分. <style> body { background: #0 ...
- Qt 程序获取程序所在路径、用户目录路径、临时文件夹等特殊路径的方法
Qt 程序获取程序所在路径.用户目录路径.临时文件夹等特殊路径的方法 经常我们的程序中需要访问一些特殊的路径,比如程序所在的路径.用户目录路径.临时文件夹等.在 Qt 中实现这几个功能所用的方法虽然都 ...
- 巧用Javascript将相对路径地址转换为绝对路径
这里介绍的其实本质上是两种方法,通过创建DOM或通过JavaScript计算: 1)通过新创建的Image, 经测试会发送一个Aborted的请求,并且IE6不支持, 将new Image改成docu ...
- maven打包报错:在类路径或引导类路径中找不到程序包 java.lang
刚下了个新项目,跑了下maven报错了: E:\workspace\portalframe>mvn clean install [INFO] Scanning for projects... [ ...
- 织梦dedecms5.7二级域名文章图片不显示修改方法.相对路径改为绝对路径的方法
dedecms升级到5.7SP1后,开启二级域名,你会发现,在二级域名下的文章,上传的图片地址都是:二级域名+图片地址,这是相对路径.但是你的图片是默认上传在uploads里面的.应该使用绝对路径.这 ...
- 传统路径导出 VS 直接路径导出(oracle exp direct=y)
Oracle 传统的Export与Import依旧被保留到11g,而且9i与10g有很多依旧使用Export与Import方式进行备份与恢复的企业.从Oracle 7.3开始,传统的exp导出程序提供 ...
随机推荐
- Algo: Dynamic programming
Copyright © 1900-2016, NORYES, All Rights Reserved. http://www.cnblogs.com/noryes/ 欢迎转载,请保留此版权声明. -- ...
- I-country
I-country 在\(n\times m\)的网格图中,给出每个格子的权值,寻找有k个格子的凸联通块,使包含的权值最大,\(N,M≤15,K≤225\). 解 我们首先要知道凸联通块的定义 从任意 ...
- JWT生成token
1.JWT简介 JSON Web Token 简称JWT.一个JWT实际上就是一个字符串,它由三部分组成,头部.载荷与签名.JWT生成的token是这样的 2.Json Web Token(JWT)生 ...
- IOS6 新特性之UIActivityViewController详解
新的IOS6增加了一些新特性.因为应用需要,所以在国庆的几天里.研究了一下IOS6的说明文档,然后大概地总结了一下UIActivityViewController的用法与大家分享. 首先 从实际效果入 ...
- 深入浅出 Java Concurrency (37): 并发总结 part 1 死锁与活跃度[转]
死锁与活跃度 前面谈了很多并发的特性和工具,但是大部分都是和锁有关的.我们使用锁来保证线程安全,但是这也会引起一些问题. 锁顺序死锁(lock-ordering deadlock):多个线程试图通 ...
- 主机入侵防御系统(HIPS)分析
主机入侵防御系统(Host Intrusion Prevent System,HIPS)是近几年出现并迅速发展的新兴产物,与传统意义的防火墙和杀毒软件不同,它并不具备特征码扫描和主动杀毒等功能,所以想 ...
- C++ #define,typedef,using用法区别
一.#define #define 是宏定义命令,宏定义就是将一个标识符定义为一个字符串,源程序中的该标识符均以指定的字符串来代替,是预编译命令,因此会在预编译阶段被执行 1.无参宏定义 无参宏的宏名 ...
- String类的endsWith()方法和startsWith()方法
String 的endsWith() 方法用于测 试字符串是否以指定的后缀结束.如果参数表示的字符序列是此对象表示的字符序列的后缀,则返回 true:否则返回 false.注意,如果参数是空字符串,或 ...
- vue 全局方法(单个和多个方法)
参考: https://www.cnblogs.com/zhcBlog/p/9892883.html https://blog.csdn.net/xuerwang/article/d ...
- python 创建txt每行写入
txtPath=os.path.join(vocDir,"eval.txt") with open(txtPath,"w") as f: f.writeline ...