题目描述:

自己的提交:广度优先 O(mn*min(k,m+n))

class Solution:
def shortestPath(self, grid, k: int) -> int:
visited = {}
queue = [[0,0,k-1]]if grid[0][0] == 1 and k > 0 else [[0,0,k]]
if k == 0 and grid[0][0] == 1:
return 0
m,n = len(grid),len(grid[0])
k = min(m+n-3,k) #
res = 0
while queue:
tmp = []
for i,j,k in queue:
if i == m-1 and j == n-1:
return res
for i_,j_ in [(i+1,j),(i-1,j),(i,j+1),(i,j-1)]:
if 0 <= i_ < m and 0 <= j_ < n :
if grid[i_][j_] == 0 and ((i_,j_) not in visited or k > visited[(i_,j_)]):
tmp.append([i_,j_,k])
visited[(i_,j_)] = k
elif k > 0 and ((i_,j_) not in visited or k-1 > visited[(i_,j_)]):
tmp.append([i_,j_,k-1])
visited[(i_,j_)] = k - 1
queue = tmp[::]
res += 1
return -1

leetcode-167周赛-1293-网格中的最短路径的更多相关文章

  1. VMware 设备VMnet0 上的网桥暂时关闭。此虚拟机无法与主机或网格中的其他计算机通信【转】

    今天克隆了一个win7的虚拟机,移动到我的本地.打开时发现虚拟机网格连接图标出现X断开连接,于是网上收了一堆答案无一个可用的,决定自己解决这个问题,解决过程如下: 1.报错图如下:设备VMnet0 上 ...

  2. csuoj 1117: 网格中的三角形

    http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1117 1117: 网格中的三角形 Time Limit: 3 Sec  Memory Limit: ...

  3. LeetCode 80. 删除排序数组中的重复项 II

    LeetCode 80. 删除排序数组中的重复项 II

  4. cogs 1075. [省常中2011S4] 最短路径问题

    1075. [省常中2011S4] 最短路径问题 ★   输入文件:short.in   输出文件:short.out   简单对比 时间限制:1 s   内存限制:128 MB [问题描述] 平面上 ...

  5. 网格中的BFS,逆向(POJ2049)

    题目链接:http://poj.org/problem?id=2049 解题报告: 网格中的BFS,最主要的是边界问题. 1.这里在左右,上下两个方向上,分别判断墙,和门,细节是,向上有t个墙,for ...

  6. LeetCode:删除排序链表中的重复元素【83】

    LeetCode:删除排序链表中的重复元素[83] 题目描述 给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次. 示例 1: 输入: 1->1->2 输出: 1->2 示 ...

  7. 前端与算法 leetcode 26. 删除排序数组中的重复项

    目录 # 前端与算法 leetcode 26. 删除排序数组中的重复项 题目描述 概要 提示 解析 算法 # 前端与算法 leetcode 26. 删除排序数组中的重复项 题目描述 26. 删除排序数 ...

  8. 力扣(LeetCode)删除排序链表中的重复元素II 个人题解

    给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字. 思路和上一题类似(参考 力扣(LeetCode)删除排序链表中的重复元素 个人题解)) 只不过这里需要用到一个前 ...

  9. 搜索(BFS)---计算在网格中从原点到特定点的最短路径长度

    计算在网格中从原点到特定点的最短路径长度 [[1,1,0,1], [1,0,1,0], [1,1,1,1], [1,0,1,1]] 题目描述: 1表示可以经过某个地方,求解从(0,0)位置到(tr,t ...

随机推荐

  1. JPEG 存储分割后的图象会产生锯齿

    分割后的图象如果保存为 JPG 格式,物体边界会产生锯齿状的很暗的像素. 如下图所示. 这会给后续处理带了噪声, 因此,保存分割后的图象最好用无损压缩格式,如 bmp, png 等.

  2. 将原生JS和jquery里面的DOM操作进行了一下整理

    创建元素节点 1.原生: document.createElement("div") 2.jquery: $("<div></div>" ...

  3. 【题解】4879. 【NOIP2016提高A组集训第11场11.9】少女觉

    Description 在幽暗的地灵殿中,居住着一位少女,名为古明地觉.据说,从来没有人敢踏入过那座地灵殿,因为人们恐惧于觉一族拥有的能力——读心.掌控人心者,可控天下. 咳咳.人的记忆可以被描述为一 ...

  4. 数据库学习之mysql数据库

    参考链接网站: http://c.biancheng.net/view/2361.html Mysql的版本以及版本号 MySQL Community Server(社区版):该版本完全免费,但是官方 ...

  5. Java8数据流

    流/Stream是在JAVA8中引入的一个抽象,可以处理类似SQL语句声明数据. 例如,考虑下面的SQL语句. SELECT max(salary),employee_id,employee_name ...

  6. CentOS 安装开发工具包

    这里使用组安装包,一次性安装所有开发者工具. 1.查看有那些组安装包可用. [root@bogon ~]# yum grouplist | more 2.搜索一下有哪些和 Development 有关 ...

  7. MySQL-第八篇MySQL内置函数

    1.根据函数对多行数据的处理方式,可以分为: 1>单行函数:对每行输入值进行单独计算,每行得到一个计算结果返回给用户.  2>多行函数:聚集函数.分组函数,主要用于完成一些统计功能.对多行 ...

  8. [BZOJ4151]The Cave

    Solution: ​ 假设现在在点1,有许多形如 (x, y, z) 的限制条件,那么对于一组限制,必须先走到 x, y 的 \(\frac{z-dis(x, y)}{2}\) 级祖先,叫这些点为限 ...

  9. Codeforces 1148C(思维)

    题面 给出一个长度为n的排列a,每次可以交换序列的第i个和第j个元素,当且仅当\(2 \times |i-j| \geq n\),求一种交换方案,让序列从小到大排好序 分析 重点是考虑我们怎么把第x个 ...

  10. QImage 如何和 Tensor 相互转换?

    torch::Tensor fromQImage(QImage image) { int width = image.width(); int height = image.height(); int ...