algorithm - 如何直接找到一个点旁边的所有点?
问题描述
我有一组坐标。我正在寻找一种方法来获取给定坐标的所有周围邻居。我正在寻找它旁边的所有点,这样您就不需要“穿越”另一个点来到达那里。
我最初只用 K-nearest neighbors 尝试了这个,但它给出了每一个最近的点,即使它不是直接在你旁边
一个例子:
如果我有这样的坐标网格:
A
E
C D
B
F
我想要一个结果,如果你是 A,你会返回 B。我不能去 C 或 F,因为 B 在路上
在 B 你返回 A、C 和 F
在 C 你返回 B 和 D
在 D 你返回 C 和 E
在 E 你返回 D
有这样的算法名称吗?还是我可以使用的某种方法?
解决方案
首先获取最大坐标位置,例如 (3,4),假设它是 0 索引,然后创建一个大小为 max+1 的 2d 矩阵(网格),在我们的示例中为 (4,5),并填写您的坐标。
要获取特定坐标的邻居,请在所有 4 个方向上移动并获取您在每个方向上找到的第一个邻居。
注意:不要忘记使用默认值初始化您的二维矩阵,它将帮助您找到邻居。
推荐阅读
- java - 带有 Spring boot 的 Keyvault MSI:如何配置 keyvault 以在本地运行时使用 Azure cli 凭据而不是托管标识?
- python - 如何更改 Black(Python 格式化程序)的换行设置?
- php - 如何在 Woocommerce 5.2 中以编程方式创建可变产品
- java - 在同一 JVM 进程中以编程方式启用和禁用 SSL SNI 扩展
- android - 声明提供工件的存储库,请参阅文档
- javascript - REACT/REDUX 动作没有被分派
- sql - 选择条件列但获取子查询返回超过 1 个值
- html - Div 容器突然显示不正确 - 代码没有变化,是什么原因?
- laravel - Laravel Guest-checkout is not working in paypal using "paypal/rest-api-sdk-php": "*" this package also success response is not getting on it
- ios - SINCH SDK 带宽