gpt4 book ai didi

c# - 检查边缘列表中子集的合理快速方法

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

我有一个边列表,这些边由一个包含坐标的点数组组成。

我试图删除作为另一条边的子集的任何边,即其中一条边的所有点按顺序包含在另一条边中(尽管顺序可能意味着向后和向前)。

我正在努力想出一个不需要四个嵌套 for 循环的解决方案(通过边缘循环,再次通过边缘循环,通过第一个点循环,通过第二个点循环,比较)。有没有更快的处理方法?或者至少不会那么糟糕。

谢谢。

编辑:这一切都是在 C# 中完成的。我也已经有了一种比较点是否相等的方法。

编辑:

如果这是一条线(假装数字是坐标)。

1-----2-----3-----4-----5-----6

这是由一些相同的点组成的另一条线:

3------4------5

第二个是第一个的子行,所以我想从列表中删除第二个。

最佳答案

构建从每对点(即线段)到边和索引对的集合的映射,其中边在该索引处具有该线段。然后,遍历映射条目,遍历集合的第一条边,遍历集合的第二条边,并从给定的索引开始向外比较它们。

关于c# - 检查边缘列表中子集的合理快速方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22632659/

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