0

有人可以帮我解决这个问题吗?删除矩阵中相同行的最快方法是什么?例如,如果有 3 个相同的行,则将删除 2 个。

例如

0 1 0
0 1 0
0 1 0
1 1 1

将会

0 1 0
1 1 1

4

1 回答 1

0

根据明确定义的顺序(例如字典顺序)对矩阵的行进行排序,然后比较相邻的行,因为它们找到了重复项。如果您需要恢复原始行排序,您可以跟踪您通过排序诱导的行排列,然后在消除重复行后反转该排列。

在没有排序的情况下执行任何类型的成对比较将具有 O(N 2 ) 时间复杂度来定位重复项,而首先排序将具有 O(N log N) 时间复杂度,其中 N 是行数。

如果您对实施的具体细节有任何疑问,您需要让我们知道您迄今为止所做的尝试,并描述它如何达不到您的期望。

于 2013-03-23T23:49:55.460 回答