这是我们在工作中遇到的一个愚蠢的小问题,我们中的一些人有不同的解决方案,我们想知道是否有更好的方法来解决。为了举例,我将它归结为一些非常简单的东西。
假设我们有一个多维数组,其中包含以下值。每个值都是它自己的元素,每一行都是一个数组。
0a00
000b
c000
在上面的 "array" 中,$array[0][1] 是 "a",$array[1][3] 是 "b",$array[2][0] 是 "c"。我们需要做的是,将与非数值相邻的所有值加 1。因此,我们将值递增后的数组应如下面的数组所示。我们目前的解决方案是首先检查数组的所有 4 个“角”,递增相邻值,然后检查顶行和底行,然后检查第一列和最后一列,最后检查所有其他元素。每当我们碰到一个非数字元素时,我们都会将所有其他相邻的非数字元素加 1。这有点蹩脚/麻烦,我们知道必须有更好的方法。当你知道所有炸弹在哪里时,它几乎是在反向构建一个炸弹扫地板。
1a21
222b
c111