gpt4 book ai didi

c++ - 检查相邻网格的最有效方法

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:27:59 26 4
gpt4 key购买 nike

假设我有一个由大小为 NxN 的二维数组 A 表示的大方形网格,并且通过其坐标将一个点分配给其中一个网格。每个网格都被八个相邻的网格包围(想想键盘上的数字键盘,5 号被 1、2、3、4、6、7、8、9 包围)。

现在我会为每个相邻的网格做一些事情,但是数组中的一些元素可能没有八个相邻的网格。如果它在寄宿生之一,那么它只有五个邻居(比如 2 号只被 1、3、4、5、6 包围),如果它在四个角之一,那么它只被包围三个邻居。给定数组 A 的一个元素,如何以最有效的方式检查它的邻居?我可以设置很多 if 语句来查看它的数组索引是否大于 0 或小于 N-1,但是如何对这些 if 语句进行分组(嵌套)以便需要最少的步骤?

谢谢

最佳答案

如果您不希望每个元素检查几个条件,您可以使用 for 循环 i=1,j=1; i<N-1 && j<N-1; i++,j++对于“安全”元素。

然后像这样使用循环遍历每一行j=1;j<N-1;j++ {check array[0][j] and array[N-1][j]我也一样。

现在,您只需要检查角即可。

通过这种方式,没有元素会检查比它必须检查的更多的条件。

关于c++ - 检查相邻网格的最有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32502564/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com