您好,我需要找到距另一个点最近的点。
我首先检查一个点(我称之为 x )和另一个点的距离是否接近。
然后我将其存储在 multimap(Int,int) 选项卡中,以名为 x 的点作为键,并将名为 x 的点的最近点作为广告值。
问题是我有两次相同的数据,因为如果 x 接近 y,y 也接近 x。
我有一张这样的 list :
[[25:{26,27}],[26:{25,27}],[27:{25}]]
我尝试将这些值与键进行比较,并尝试在一个键等于另一个键的值时删除它们。
谁能帮我找到逻辑吗?
最佳答案
我会尝试创建一个二维数组来检查一对是否已被访问。例如,
int[][] visited = new int[x][y];//a pair (x , y)
for(int i = 0; i < x; i++){
for(int j = 0; j < y; j++){
if(!visited[x][y] && !visited[y][x]){
//check if (x, y) or (y, x) is already visited
//if the pair is not visited yet, do what you want for the pair.
visited[x][y] = true;
visited[y][x] = true;
}
}
关于java - 多重 map 中最近距离的两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50375018/