博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
980. Unique Paths III
阅读量:4655 次
发布时间:2019-06-09

本文共 1289 字,大约阅读时间需要 4 分钟。

题目来源:
 https://leetcode.com/problems/unique-paths-iii/
自我感觉难度/真实难度:
 
题意:
 
分析:

 回溯法,直接DFS就可以了

自己的代码:
class Solution:    def uniquePathsIII(self, grid: List[List[int]]) -> int:        res=0        n=len(grid)        m=len(grid[0])        for i in range(n):            for j in range(m):                if grid[i][j]==1:                    start_i,start_j=i,j                if grid[i][j]==2:                    end_i,end_j=i,j        def dfs(grid,k,l):            if grid[k][l]==-1:                return             if grid[k][l]==2:                for i in range(n):                    for j in range(m):                        if grid[n][m]==0:                            return                res+=1                return             grid[k][l]=-1                left,right,up,down=l-1,l+1,k-1,k+1            if left>=0:                dfs(grid,k,left)            if right<=m:                dfs(grid,k,right)            if up>=0:                dfs(grid,up,l)            if down<=n:                dfs(grid,down,l)        dfs(grid,start_i,start_j)        return res

 

 

代码效率/结果:

虽然有思路,但是写出来的代码细节通不过,注意退回去的时候

优秀代码:

 

代码效率/结果:
 
自己优化后的代码:
 
反思改进策略:

1.函数输入变量设计的时候,我们要的是输入每次不同的东西。如果是全局的东西,我们可以不当作输入变量

2.回溯法,如果需要改变全局变量的值,那么从DFS后面回去的时候,要改回来!!!

 

 

 

写题时间时长:

转载于:https://www.cnblogs.com/captain-dl/p/10476019.html

你可能感兴趣的文章
博客园页面设置
查看>>
【Alpha】Daily Scrum Meeting第五次
查看>>
git 路径中文转换成编码的解决
查看>>
2.19
查看>>
win10安装mongodb-win32-x86_64-2008plus-ssl-3.4.10-signed
查看>>
sql 补齐字段位数
查看>>
欧拉回路一个定理的证明
查看>>
[LnOI2019]东京夏日相会
查看>>
JS返回上一页并刷新
查看>>
MySQL 8.0 正式版 8.0.11 发布:比 MySQL 5.7 快 2 倍
查看>>
LintCode-Subarray Sum Closest
查看>>
java Calendar类
查看>>
重新认识一个强大的 Gson
查看>>
LINQ to SQL语句分析
查看>>
ActiveMQ消费者接收消息的过程
查看>>
mac 终端 使用ftp命令
查看>>
本地Apache建立虚拟主机
查看>>
IDC美股行情处理
查看>>
Umbraco遇到的问题解决
查看>>
句子逆序,近义词维护,数字颠倒,蛇形矩阵
查看>>