问题
在 lua
中,我有一个值数组(特别是 - x
和 y
位置值),我想从中删除重复的 < em>对。该数组如下所示:
array = {x1, y1, x2, y2, x3, y3, ... , xn, yn}
其中 n 是坐标对的数量。因此,一个值是 x
坐标还是 y
坐标完全取决于它在数组中的位置。重复定义为 xa == xb 和 ya == yb
。例如,如果 x1 == x2
和 y1 == y2
我想删除 x1
和 y1
< em> 或(不是两者) 来自数组的 x2
和 y2
。
问题
- 如何从这样的数组中删除重复项?
- 不分割数组能不能做到?
- 奖励:在更一般的情况下,如果数组包含 3 个(或更多)变量,即
array = {x1, y1, z1, x2, y2, z2, .. ., xn, yn, zn
数值示例
如果给定一个值数组:
array = {1, 1, 2, 1, 1, 1, 2, 1}
然后删除重复项应该会产生一个数组:
array = {1, 1, 2, 1}
最佳答案
您可以使用表格中的表格来跟踪重复项。外表由 x 分量索引,内表由 y 分量索引。然后,您只需以 2 为增量遍历原始数组,并且仅在未将元素作为重复项进行跟踪时才将其复制到结果中。
关于arrays - 从值数组中删除对重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42908071/