
773.滑动谜题
发布日期:2021-05-06 11:08:31
浏览次数:15
分类:精选文章
本文共 1281 字,大约阅读时间需要 4 分钟。

class Solution: def slidingPuzzle(self, board): res = [] board_res = [[1, 2, 3], [4, 5, 0]] ans = 0 if board == board_res: return ans q = [board] new = [[-1, 0], [0, 1], [1, 0], [0, -1]] while q: size = len(q) ans = ans + 1 while size: # 查找0的坐标 for i in range(2): for j in range(3): if q[0][i][j] == 0: zero_i = i zero_j = j break for new_x, new_y in new: tmp = copy.deepcopy((q[0])) if 0 <= zero_i + new_x <= 1 and 0 <= zero_j + new_y <= 2: # 交换位置 tmp[zero_i][zero_j], tmp[zero_i + new_x][zero_j + new_y] = tmp[zero_i + new_x][zero_j + new_y], \ tmp[zero_i][zero_j] if tmp not in res: res.append(tmp) if tmp == board_res: return ans q.append(tmp) size = size - 1 q.pop(0) return -1
发表评论
最新留言
感谢大佬
[***.8.128.20]2025年03月28日 20时36分23秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
C语言实现dijkstra(adjacence matrix)
2021-05-08
三层框架+sql server数据库 实战教学-徐新帅-专题视频课程
2021-05-08
【单片机开发】智能小车工程(经验总结)
2021-05-08
【单片机开发】基于stm32的掌上游戏机设计 (项目规划)
2021-05-08
C++&&STL
2021-05-08
子集(LeetCode 78)
2021-05-08
微信js-sdk使用简述(分享,扫码功能等)
2021-05-08
c++中ifstream及ofstream超详细说明
2021-05-08
web项目配置
2021-05-08
基于单片机简易信号误差分析设计-全套资料
2021-05-08
基于单片机简易脉搏测量仪系统设计-毕设课设资料
2021-05-08
Javascript中String支持使用正则表达式的四种方法
2021-05-08
eclipse引用sun.misc开头的类
2021-05-08
Servlet2.5的增删改查功能分析与实现------删除功能(四)
2021-05-08
spring启动错误:Could not resolve placeholder
2021-05-08
invalid byte sequence for encoding
2021-05-08
技术美术面试问题整理
2021-05-08
ORB-SLAM2:LoopClosing线程学习随笔【李哈哈:看看总有收获篇】
2021-05-08
js求阶乘
2021-05-08