最近也不知道在忙啥,反正好久没玩 codewars 了,上去看看的时候偶尔看到了一个很有意思的题目,稍微看了一下说明,感觉可以做出来,于是就开始了长达 2+2 个小时的解题过程。
下面是简单的题目说明:简单的来说,就是有一个二维数组,数组的每一个元素就是一个细胞,细胞有存活和死亡两种状态,每经过一代,细胞的状态都可以发生改变,有如下四个具体规则:
1、任何具有少于两个活邻居的活细胞都会死亡。
2、任何具有三个以上活邻居的活细胞都会死亡。
3、任何有两个或三个活邻居的活细胞都可以存活到下一代。
4、任何具有恰好三个活邻居的死细胞都将变为活细胞。
什么是邻居呢?就是围绕着该细胞的周围一圈,即八个细胞。
好了,在看完这些的时候,我的思路差不多就成型了。首先,我得获取到这个细胞周围细胞的状态,并且判断有几个活细胞,这样就能够根据规则判断各个细胞下一代的存活情况了。当我刷刷刷敲下代码,顺利地通过第一个测试的时候,我得意地提交了我的代码,结果出乎我的意料,在第三个测试之后陆续出现了问题。从此,我开始了长达半个小时的debug,但是仍然一无所获,只好绝望地看看讨论区的各位,结果,我发现了一点玄机!
首先,仔细点的朋友(不像我