有人可以帮我解决这个问题吗?删除矩阵中相同行的最快方法是什么?例如。如果有 3 行相同,则删除 2 行。
例如
block 引用>0 1 0
0 1 0
0 1 0
1 1 1将会
block 引用>0 1 0
1 1 1
最佳答案
根据明确定义的顺序对矩阵的行进行排序(例如 lexicographical ordering ),然后比较相邻行,删除发现的重复项。如果需要恢复原始行排序,您可以跟踪通过排序产生的行排列,然后在消除重复项后反转该排列 行。
在不排序的情况下执行任何类型的成对比较来查找重复项的时间复杂度为 O(N2),而首先排序的时间复杂度为 O(N log N),其中 N 是行数。
如果您对实现的具体细节有疑问,您需要让我们知道您迄今为止所尝试的内容,并描述它为何未达到您的期望。
关于c - 删除矩阵中相同的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15593304/