一尘不染

如何找到任何大小的井字游戏的赢家?

algorithm

这是一个面试问题。“您如何确定某人是否在任何大小的棋盘上都赢得了井字游戏?” 我听说算法复杂度为O(1)。是否有意义 ?有人可以解释该算法吗?


阅读 199

收藏
2020-07-28

共1个答案

一尘不染

答案就在该页面上,但是我还是会解释一下。

该算法的复杂度为O(1),以确定给定的举动是否会赢得比赛。通常,它不能为O(1),因为您需要知道董事会的状态才能确定获胜者。但是,您可以逐步建立该状态,以便确定在O(1)中移动是否获胜。

首先,为每个玩家的每一行,每一列和对角线设置一个数字数组。在每次移动中,增加受该移动影响的行,列和对角线(该移动可能不一定在对角线上)对应于玩家的元素。如果该玩家的人数等于棋盘的尺寸,则该玩家获胜。

2020-07-28