Young87

SmartCat's Blog

So happy to code my life!

游戏开发交流QQ群号60398951

当前位置:首页 >AI写作

c#题例-2025-08-12 07:24:58

实现一个高效的算法,模拟一个无限扩展的二维网格上的“生命游戏”(Game of Life)。该网格中的每个单元格遵循以下规则:

1. 活细胞(值为1)如果**邻居**(8个方向)中存活细胞数少于2个或超过3个,则死亡(变为0)。
2. 活细胞如果邻居中存活细胞数为2或3个,则继续存活。
3. 死细胞(值为0)如果邻居中存活细胞数恰好为3个,则复活(变为1)。

要求:

- 网格初始状态由一个包含**坐标为(x, y)的活细胞列表**给出(如 `IList<(int x, int y)> liveCells`)。
- 由于网格是无限大的,**不能使用二维数组**存储整个网格。
- 实现函数 `IList<(int x, int y)> NextState(IList<(int x, int y)> liveCells)`,返回下一轮的活细胞列表。
- 时间复杂度应为**O(n)**,空间复杂度也应为**O(n)**,其中 n 是当前活细胞的数量。

除特别声明,本站所有文章均为原创,如需转载请以超级链接形式注明出处:SmartCat's Blog

上一篇: c#题例-2025-08-12 12:58:21

下一篇: c#题例-2025-08-12 01:51:39

精华推荐