关注
class Solution:
def move(self, n, x1, y1, z1, x2, y2, z2) -> bool:
if x1 + y1 + z1 != x2 + y2 + z2:
return False
x1, y1, z1 = sorted((x1, y1, z1))
x2, y2, z2 = sorted((x2, y2, z2))
if x1 == x2 and y1 == y2:
return True
if x2 % 3 == y2 % 3 == z2 % 3:
return False
mymap = set()
mylist = [(x1, y1, z1)]
while mylist:
x, y, z = mylist.pop()
if x == x2 and y == y2:
return True
if (x, y) not in mymap:
mymap.add((x, y))
for (x, y, z) in [(x, y, z), (x, z, y), (y, x, z), (y, z, x), (z, x, y), (z, y, x), ]:
if 0 <= 2 * y - x + 1 <= n and 0 <= 2 * x - y - 1 <= n:
x, y, z = sorted((2 * y - x + 1, 2 * x - y - 1, z))
if (x, y) not in mymap:
mylist.append((x, y, z))
return False
本地运行,n=3000 坐标1500左右,时间3.4s
查看原帖
点赞 4
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 如果中了500万,你会离职吗? #
55370次浏览 383人参与
# 技术岗笔试题求解 #
14977次浏览 218人参与
# 腾讯音乐26届实习 #
112144次浏览 784人参与
# 牛友故事会 #
153548次浏览 2521人参与
# 双非应该如何逆袭? #
15827次浏览 660人参与
# 你投递的公司有几家约面了? #
52392次浏览 366人参与
# 元戎现在香不香 #
62836次浏览 510人参与
# 两会劳动法放大招 #
13419次浏览 368人参与
# 我的省钱小妙招 #
3679次浏览 133人参与
# 打工人的精神状态 #
24359次浏览 415人参与
# 怎么防止在试用期被辞退 #
108768次浏览 844人参与
# 实习/项目/竞赛奖项,哪个对找工作更重要? #
46378次浏览 616人参与
# 携程求职进展汇总 #
175440次浏览 1175人参与
# 秋招盘点:机械人值得去的企业 #
63461次浏览 648人参与
# 电网笔面经互助 #
28259次浏览 291人参与
# 如果公司降薪,你会跳槽吗? #
50513次浏览 410人参与
# 你是如何准备春招的? #
20724次浏览 155人参与
# 机械人值得去的半导体企业 #
15992次浏览 152人参与
# 新凯来求职进展汇总 #
11809次浏览 61人参与
# 新年的第一句祝福 #
29809次浏览 362人参与
# 虾皮求职进展汇总 #
197367次浏览 1281人参与
# 你小时候最想从事什么职业 #
73474次浏览 1379人参与