题目

有一个机器人的位于一个M×N个网格左上角(下图中标记为'Start')。

机器人每一时刻只能向下或者向右移动一步。机器人试图达到网格的右下角(下图中标记为'Finish')。
问有多少条不同的路径?
注意事项

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的更多相关文章

  1. Python主文件路径和当前模块路径

    主执行文件路径sys.argv[0]                                                                                   ...

  2. iOS开发——路径篇&混编路径与全局宏路径

    混编路径与全局宏路径 最近在做东西的时候有一个地方要用到一个第三方库的,但是目前swift版的还没有找到,自己又不想写(其实是不会写),所以就想到了混编,但是中间出现了好多问题,其中印象最深的就是桥接 ...

  3. Java中windows路径转换成linux路径等工具类

    项目中发现别人写好的操作系统相关的工具类: 我总结的类似相关博客:http://www.cnblogs.com/DreamDrive/p/4289860.html import java.net.In ...

  4. C#中网站根路径、应用根路径、物理路径、绝对路径,虚拟路径的区别

    C#中网站根路径,请站点的最外一层 /表示 应用根路径 ~/表示,有时候C#程序路径并不是网站路径 物理路径 server.mappath("~/") 是指应用程序放在服务器硬盘的 ...

  5. [js高手之路] html5 canvas系列教程 - 开始路径beginPath与关闭路径closePath详解

    路径在canvas绘图中,经常被用到,是一个非常重要的概念. 比如:我们要在canvas画出3条直线,要求用不同的颜色加以区分. <style> body { background: #0 ...

  6. Qt 程序获取程序所在路径、用户目录路径、临时文件夹等特殊路径的方法

    Qt 程序获取程序所在路径.用户目录路径.临时文件夹等特殊路径的方法 经常我们的程序中需要访问一些特殊的路径,比如程序所在的路径.用户目录路径.临时文件夹等.在 Qt 中实现这几个功能所用的方法虽然都 ...

  7. 巧用Javascript将相对路径地址转换为绝对路径

    这里介绍的其实本质上是两种方法,通过创建DOM或通过JavaScript计算: 1)通过新创建的Image, 经测试会发送一个Aborted的请求,并且IE6不支持, 将new Image改成docu ...

  8. maven打包报错:在类路径或引导类路径中找不到程序包 java.lang

    刚下了个新项目,跑了下maven报错了: E:\workspace\portalframe>mvn clean install [INFO] Scanning for projects... [ ...

  9. 织梦dedecms5.7二级域名文章图片不显示修改方法.相对路径改为绝对路径的方法

    dedecms升级到5.7SP1后,开启二级域名,你会发现,在二级域名下的文章,上传的图片地址都是:二级域名+图片地址,这是相对路径.但是你的图片是默认上传在uploads里面的.应该使用绝对路径.这 ...

  10. 传统路径导出 VS 直接路径导出(oracle exp direct=y)

    Oracle 传统的Export与Import依旧被保留到11g,而且9i与10g有很多依旧使用Export与Import方式进行备份与恢复的企业.从Oracle 7.3开始,传统的exp导出程序提供 ...

随机推荐

  1. css3 ---2 属性的选择器

    存在和值属性选择器1:[attr]:该选择器选择包含 attr 属性的所有元素,不论 attr 的值为何. [name]{ background: pink; } <!DOCTYPE html& ...

  2. 「题解」:[AHOI2013]作业

    问题: 作业 时间限制: 10 Sec  内存限制: 512 MB 题面 题目描述 此时己是凌晨两点,刚刚做了Codeforces的小A掏出了英语试卷.英语作业其实不算多,一个小时刚好可以做完.然后是 ...

  3. videojs实现双击视频全屏播放、播放器全屏时视频未全屏

    https://blog.csdn.net/staritstarit/article/details/78451963 暂停时只能使用左下角的暂停按钮,点击视频时不再响应 使用width和height ...

  4. 过滤器filters

    <!DOCTYPE html> <html lang="zh"> <head> <title></title> < ...

  5. 接口Interface解耦的理解

    定义一个接口 磁盘 interface Disk(){   void save(File file);   } U盘和硬盘都是磁盘,都实现这个接口 class UDisk implement Disk ...

  6. socket工作原理深入分析

    socket原理分析 本篇文章摘自https://www.cnblogs.com/zengzy/p/5107516.html,总结的很好,所以摘过来总结整理一下,如果朋友们还想更加深入的研究网络,推荐 ...

  7. Django入门之基础篇01

    这是第一篇Django(花音:浆够)入门博客,学习Django的初衷是为了开发自己的个人小小网站(虽然有了博客园,还是想建立自己的博客,因为自主定制,香香香~!)

  8. npm install模块时 报错:not such file or directory

    通过报错信息可以知道,是因为缺少 package.json 这个文件. 解决方法: 首先,初始化项目,一路回车就行 npm init -f 接着安装依赖 npm install formidable ...

  9. 将ERF格式转换成PCAP格式

    在研究网络流量分析的时候,wireshark默认采用pcap格式.对于用Endace DAG捕捉卡捕获的数据包,一般来说,都是erf格式的.一般来说,此种格式包含了更多了链路层信息.而我们采用wire ...

  10. [转]WPF自定义控件之带倒计时的按钮--Button

    1.说明 之前做过一个小项目,点击按钮,按钮进入倒计时无效状态,计时完成后,恢复原样,现在就实现该效果---带倒计时的按钮 2.效果 1)正常状态               2)MouseOver( ...