当前位置: 首页 > wzjs >正文

wordpress富编辑器seo网站关键词快速排名

wordpress富编辑器,seo网站关键词快速排名,衡阳网站建设公司地址,如何做网站的下载的二维码Leetcode 3568. Minimum Moves to Clean the Classroom 1. 解题思路2. 代码实现 题目链接:3568. Minimum Moves to Clean the Classroom 1. 解题思路 这一题我的核心思路就是广度优先遍历遍历剪枝。 显然,我们可以给出一个广度优先遍历来给出所有可能…
  • Leetcode 3568. Minimum Moves to Clean the Classroom
    • 1. 解题思路
    • 2. 代码实现
  • 题目链接:3568. Minimum Moves to Clean the Classroom

1. 解题思路

这一题我的核心思路就是广度优先遍历遍历+剪枝。

显然,我们可以给出一个广度优先遍历来给出所有可能的走法直至无法继续或者捡完所有垃圾。

但是,上述情况事实上可能会无限循环下去,而且所有的走法也非常浪费,因此,我们需要对其进行剪枝,从而优化我们的计算。

而这里,我的剪枝思路就是:

  • 如果一个点曾经走过,则当他重新回到这个点的时候,他必须满足以下两个条件之一,否则这条路线必然不会是最优的,可以直接忽略:
    • 他在中间的过程中捡过了新的垃圾;
    • 他在中间的过程中补充了能量(即回来时的能量值大于之前来的时候的能量值)

由此,我们就能对上述问题进行解答了。

2. 代码实现

给出python代码实现如下:

class Solution:def minMoves(self, classroom: List[str], energy: int) -> int:n, m = len(classroom), len(classroom[0])k, mapping, seen = 0, {}, {}for i in range(n):for j in range(m):if classroom[i][j] == "L":mapping[(i, j)] = kk += 1elif classroom[i][j] == "S":start = (0, 0, -energy, i, j)seen[(0, i, j)] = energyif k == 0:return 0q = [start]while q:step, status, e, i, j = heapq.heappop(q)status = -statuse = -eif status == (2**k)-1:return stepelif e <= 0:continueif i-1 >= 0 and classroom[i-1][j] != "X":new_status = status if classroom[i-1][j] != "L" else status | (1 << mapping[(i-1, j)])new_energy = e-1 if classroom[i-1][j] != "R" else energyif seen.get((new_status, i-1, j), -1) < new_energy:heapq.heappush(q, (step+1, -new_status, -new_energy, i-1, j))seen[(new_status, i-1, j)] = new_energyif i+1 < n and classroom[i+1][j] != "X":new_status = status if classroom[i+1][j] != "L" else status | (1 << mapping[(i+1, j)])new_energy = e-1 if classroom[i+1][j] != "R" else energyif seen.get((new_status, i+1, j), -1) < new_energy:heapq.heappush(q, (step+1, -new_status, -new_energy, i+1, j))seen[(new_status, i+1, j)] = new_energyif j-1 >= 0 and classroom[i][j-1] != "X":new_status = status if classroom[i][j-1] != "L" else status | (1 << mapping[(i, j-1)])new_energy = e-1 if classroom[i][j-1] != "R" else energyif seen.get((new_status, i, j-1), -1) < new_energy:heapq.heappush(q, (step+1, -new_status, -new_energy, i, j-1))seen[(new_status, i, j-1)] = new_energyif j+1 < m and classroom[i][j+1] != "X":new_status = status if classroom[i][j+1] != "L" else status | (1 << mapping[(i, j+1)])new_energy = e-1 if classroom[i][j+1] != "R" else energyif seen.get((new_status, i, j+1), -1) < new_energy:heapq.heappush(q, (step+1, -new_status, -new_energy, i, j+1))seen[(new_status, i, j+1)] = new_energyreturn -1

提交代码评测得到:耗时3097ms,占用内存58.28MB。

http://www.dtcms.com/wzjs/102524.html

相关文章:

  • 保山市城乡建设局网站谷歌搜索引擎363入口
  • 可以做宣传的网站谷歌搜索引擎大全
  • 公司网站一般多少钱如何自己建个网站
  • 哪个网站做的最好广州网站优化服务商
  • 人才网网站开发手册在线优化工具
  • 日本可以自己做网站吗百度账号登录个人中心
  • 网站建设动图代码360收录提交
  • 学校网站建设教程百度站长工具排名
  • 仪征网站建设整站优化要多少钱
  • 做网站需要注意多少页百度推广竞价排名
  • 邢台做企业网站制作网站要找什么公司
  • 郑州大学动态网站开发考试答案百度新闻排行榜
  • 做网站用宋体有版权问题吗成全在线观看免费高清动漫
  • 深圳建设局网站电商运营自学网站
  • 百度站长平台链接网络工程师是干什么的
  • 电子商务网站开发需要注意问题短网址生成网站
  • 做淘客网站品牌营销策划公司哪家好
  • 怎么做钓鱼网站生成做网站的步骤
  • 企业定制网站建设公司什么是口碑营销
  • 婚恋网站开发平台代理招商线上推广活动有哪些
  • 做水果网站用什么域名什么软件可以找客户资源
  • 深圳网站建设哪个平台好网页搜索排名提升
  • 关于国际贸易的网站网络整合营销理论
  • 网站建设列表销售外包公司
  • cnd中国室内设计网排名优化
  • 安庆做网站哪个公司好seo快速排名关键词
  • 做网站是什么专业什么工作个人建网站需要多少钱
  • 杭州文化传媒类高端网站建设公司google app
  • 在网站怎么做收款二维码合肥seo公司
  • dz论坛中英文网站怎么做百度地图人工电话