在C 中搜索2D网格
Searching a 2D grid in c++
请看一下:http://www.geeksforgeeks.org/search-a-word-in-a-a-2d-grid-of-characters/
这是一个C 程序,可搜索一个特定单词的2D网格。
in代码,有两个声明:
int x[]={-1,-1,-1, 0, 0, 1, 1, 1};
int y[]={-1, 0, 1,-1, 1,-1, 0, 1};
有人可以解释一下吗?作者说,这些都是为了在所有8个方向上进行搜索。但是我没有得到什么?
而无需查看代码,我的解释是8个方向由
给出x y
-1 -1 left down
-1 0 left
-1 1 left up
0 -1 down
etc.
这就是两个数组中编码的内容。现在,如果您有两个坐标:
int xx,yy;
您可以在循环中获得所有相邻的坐标:
for (int i=0;i<8;i++) {
nx = xx + x[i];
ny = yy + y[i];
}
如果将其描述为对:{{-1, -1}, {-1, 0}, {-1, 1}, {0, -1}, {0, 1}, {1, -1}, {1, 0}, {1, 1}}
,则更容易阅读。这就是您将添加到坐标中的内容。首先是x
,第二是y
。八个方向是NW,N,NE,W,E,SW,S,SE,它们列为diff。坐标。
,因此您可以进入8个方向,以检查矩阵中的周围字母。想象一下:
NW - N - NE
| | |
W -curr-E
| | |
SW S SE
那是8个方向(西北,向东南),为丑陋的绘画感到抱歉。但是x []和y []中使用的数字只允许您在矩阵中的x和y坐标保持1,向下1,下向下1,向下导航。
相关文章:
- 检查 2D 网格的某个元素是否与另一个元素共享对角线、水平线或垂直线
- C++中的多维数据集:从 std::vector 的 2D 数据到 std::vector 的 2D 网格的最干净方法?
- 算法设计:用边界数字表示 2D 网格的最佳方式,以C++?
- QT3D 中的 2D 网格
- C++2D网格数组,从文件中读取和插入数组值
- 在 cv::Mat 中生成 2D 坐标网格
- C Words搜索拼图网格2D数组
- 在 2D 网格上开发 A* 时卡住/一般帮助
- 如何从文件中读取并将内容存储在动态 2D 数组中并以网格格式显示
- 创建opencv Mat到2D网格
- 使用 #CGAL 的 2D 网格的三角形角度
- 2D 数组,在网格上输出 x 和 y 轴
- 查找数字是否单独存在于 2D 网格中
- 在C 中搜索2D网格
- 国际象棋游戏的数学网格的 2D 索引
- 2D 阵列/网格中的对象移动
- 在C++中查找2D网格中长度为L的所有路径
- 使用c++在opengl中创建正方形网格(2D)
- 用2d数组制作一个6x6的网格
- CUDA:在2D网格中分配线程ID