You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

N-Puzzle问题中3D数组逐单元格匹配计数的高效实现求助

高效实现方案

对于你的需求,直接用嵌套zip对齐逐位比较配合sum累加的写法就可以,时间复杂度为O(n*m)(n、m分别为网格的行、列数),属于该场景下的最优复杂度,同时没有额外空间开销,效率很高。

代码示例

goal = [0, 2, [[3, 2, 0], [6, 1, 8], [4, 7, 5]]]
test = [0, 0, [[0, 7, 1], [4, 3, 2], [8, 6, 5]]]

match_count = sum(
    g_val == t_val
    for g_row, t_row in zip(goal[2], test[2])
    for g_val, t_val in zip(g_row, t_row)
)

print(match_count) # 输出结果为1,和你示例的预期一致

补充说明

如果你的需求里需要排除空白格0的匹配,只需要在比较逻辑里加一层过滤即可:

match_count = sum(
    g_val == t_val and g_val != 0
    for g_row, t_row in zip(goal[2], test[2])
    for g_val, t_val in zip(g_row, t_row)
)

内容的提问来源于stack exchange,提问作者user13413898

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 01:54:03