不同路径(Python3)
问题描述:一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。问总共有多少条不同的路径?
示例:
输入: m = 3, n = 2
输出: 3
解释:
从左上角开始,总共有 3 条路径可以到达右下角。1. 向右 -> 向右 -> 向下 2. 向右 -> 向下 -> 向右 3. 向下 -> 向右 -> 向右
解决思路:使用动态规划思想,假设到达终点之前我们只有两种选择,一种是向下移一位,一种是向右移一位,即path[m][n] = path[m-1][n]+path[m][n-1]
我们知道path[0][0]=1
依次计算到path[m][n]
代码如下( ̄▽ ̄):
import numpy as np class Solution: def uniquePaths(self, m: int, n: int) -> int: res = np.zeros((m, n),dtype=np.int) for i in range(0,m): for j in range(0,n): if j-1>=0 and i-1>=0: res[i][j] = res[i-1][j]+res[i][j-1] elif j-1>=0: res[i][j] = res[i][j-1] elif i-1>=0: res[i][j] = res[i-1][j] else: res[i][j] = 1 # print(res) return res[m-1][n-1]
时间与空间复杂度:
时间复杂度有点高⁄(⁄ ⁄ ⁄ω⁄ ⁄ ⁄)⁄,因为是两层循环,大家有好的方法可以留言啊。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/probl...
相关推荐
chuckchen 2020-10-31
Will0 2020-10-12
Dreamhome 2020-10-09
xirongxudlut 2020-09-28
星辰大海的路上 2020-09-13
chaochao 2020-08-31
猪猪侠喜欢躲猫猫 2020-08-17
快递小可 2020-08-16
shengge0 2020-07-26
巩庆奎 2020-07-21
张文倩数据库学生 2020-07-19
xirongxudlut 2020-07-18
Ericbig 2020-07-18
kyelu 2020-07-09
liangzhouqu 2020-07-07
GuoSir 2020-06-28
chaigang 2020-06-27
pythonxuexi 2020-06-25