| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> 【Leetcode】63. 不同路径 II -> 正文阅读 |
|
[数据结构与算法]【Leetcode】63. 不同路径 II |
题目链接:不同路径II 题目描述: 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish”)。 现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径? 网格中的障碍物和空位置分别用 1 和 0 来表示。 分析: 这个题目本来是用回溯写的,但是超时了。无奈之下,看了一眼题解,原来是DP!!! dp[i][j]表示从起点(0,0)到点(i,j)的路径数。因为机器人只能向下或向右移动,所以当机器人在某个点时,只能来自于该点上方或左侧的两个点,即到达该点的路径数=到达其上方的路径数+到达其左侧的路径数。 那么显然,状态转移方程: 1)当obstacleGrid[i][j]==1时,即障碍物,则dp[i][j]=0。 2)当obstacleGrid[i][j]==0时,dp[i][j]=dp[i-1][i]+dp[i][j-1] 边界条件:当obstacleGrid[0][0]==1时,dp[0][0]=0;否则dp[0][0]=1。 又因为,dp[i][j]只和其上方和左侧的数据有关,所以dp可以是一个一维数组。 js代码如下:
时间复杂度O(mn),空间复杂度O(n)。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 9:52:32- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |