对于如下所示的给定位数组(x为1,。为0),我们有一个现有的算法来确定每一行是唯一的:
XXX...
X.XXXX
XX..X.
.XX...
但是,如果行数非常大,性能会受到影响。如果阵列有100万行,那么有人会建议能更好地找到这些唯一行序列的算法吗?
换句话说,这些行:
XXX...
X.XXXX
XX..X.
.XX...
XXX...
X.XXXX
XX..X.
.XX...
XXX...
X.XXXX
XX..X.
.XX...
无论阵列高度有多大,总是会在第一个数组中显示序列?
答案 0 :(得分:0)
假设位数组太长,我会这样做:
HashSet<int>
。Add
返回false
,则该号码不是唯一现在,您可以从哈希集中删除该数字,也可以使用非唯一数字设置第二个数字。哪种方式更好取决于一般重复的行数。