c#题例-2025-08-12 07:24:58
日期: 2025-08-12 分类: AI写作 11次阅读
实现一个高效的算法,模拟一个无限扩展的二维网格上的“生命游戏”(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
标签:AI写作
上一篇:无
精华推荐