代码随想录算法训练营第39天|● 62.不同路径 ● 63. 不同路径 II

62. 不同路径

递归栈很酷 但超时

python 复制代码
class Solution:
    def uniquePaths(self, m: int, n: int) -> int:
        if m==1 or n==1:
            return 1
        return self.uniquePaths(m-1,n)+self.uniquePaths(m,n-1)

逐行dp

python 复制代码
class Solution:
    def uniquePaths(self, m: int, n: int) -> int:
        dp=[1]*n
        for j in range(1,m):
            for i in range(1,n):
                dp[i]+=dp[i-1]
        return dp[n-1]

63. 不同路径 II

j从0开始 每个都要判断

python 复制代码
class Solution:
    def uniquePathsWithObstacles(self, obstacleGrid: List[List[int]]) -> int:
        if obstacleGrid[0][0]==1:return 0
        dp=[0]*len(obstacleGrid[0])
        for j in range(len(dp)):
            if obstacleGrid[0][j]:dp[j]=0
            elif j==0:dp[j]=1
            else:dp[j]=dp[j-1]
        for i in range(1,len(obstacleGrid)):
            for j in range(0,len(dp)):
                if obstacleGrid[i][j]==1:
                    dp[j]=0
                elif j!=0:
                    dp[j]+=dp[j-1]
        return dp[-1]
相关推荐
南宫生10 分钟前
力扣每日一题【算法学习day.130】
java·学习·算法·leetcode
柠石榴11 分钟前
【练习】【类似于子集问题】力扣491. 非递减子序列/递增子序列
c++·算法·leetcode·回溯
干饭高手15 分钟前
Day9,Hot100(图论)
python·leetcode·图论
!!!52520 分钟前
Java实现斗地主-做牌以及对牌排序
java·算法
sjsjs1125 分钟前
【数据结构-并查集】力扣1722. 执行交换操作后的最小汉明距离
数据结构·算法·leetcode
CoderIsArt38 分钟前
生成一个立方体贴图(Cube Map)
算法·sharpgl
且听风吟ayan44 分钟前
leetcode day20 滑动窗口209+904
算法·leetcode·c#
m0_6759882344 分钟前
Leetcode350:两个数组的交集 II
算法·leetcode·数组·哈希表·python3
_Itachi__1 小时前
LeetCode 热题 100 160. 相交链表
算法·leetcode·链表
m0_675988231 小时前
Leetcode1206:设计跳表
算法·leetcode·跳表·python3