我在另一个网站上遇到了这个面试问题。
在奥赛罗游戏中,红色或黑色圆盘按照一定的规则放置在 8x8 格子上。玩家选择他们的颜色,并且在网格上拥有最大数量的磁盘的玩家获胜。
给定两个二维数组(一个代表红色,另一个代表黑色)表示磁盘的存在/不存在,以及以下规则:
- 对于长度为 n > 3 的序列,分配 (n-2) 作为该玩家的分数
- 序列可以是垂直的、水平的或对角的
- 一个磁盘不能属于多个序列
例如,对于下面的二维数组,点将是对角元素(包括 [0,0])和第一行中的元素(不包括 [0,0])的最大值,或者是对角元素(不包括 [0 ,0])和水平元素(包括[0,0])。即最大(4+0, 3+2) = 5
1 1 1 1 0 0
0 1 0 0 0 0
0 0 1 0 0 0
0 0 0 1 0 0
0 0 0 0 1 0
0 0 0 0 0 1
以最高分确定获胜者。