我有一个布尔值矩阵,其中列是唯一的动作,行都是可能的解决方案,因此每一行都使用1表示此解决方案是否需要关联的唯一动作。我想消除集合中任何其他行的超集的所有行,并返回一个矩阵,其中所有行都不是任何其他行的超集。
有什么方法可以在不到n ^ 2的时间内有效地做到这一点?
尝试图算法(失败)和常规设置操作,但效率不够。
答案 0 :(得分:1)
如果您根据1的数量对行进行排序,那么我现在想到的一个解决方案将起作用。
以1s的升序环绕行
对于每个1,存储以下行的行索引:
这样,复杂度将为O(N ^ 2)。