给定一组数字,找到所有唯一的对。
例如,给定[1,4,2,3,3,2,4,1,3,6,6,5,6,6],唯一数字对将分别为1,2和4(每个都出现两次,其中值3出现3次,6出现为2对,因此不是唯一的,4和5只出现一次)。
有没有比O(n)更好的解决方案?
答案 0 :(得分:2)
在给定的表格中,您可以做的最好是 O(n)。信息理论使这个可以访问。这个论点归结为这样一个事实:如果没有关于序列的元信息,你必须访问每个单独的项目。这通常将 O(n)设置为下限。
如果您有一些现有的描述性数据,例如每个值的预先存在的计数,或者列表中的定位或分布,可能可以降低复杂性。
例如,没有 5
,此列表具有第一次出现的值按频率顺序排列的属性:
number freq
1 2
4 2
2 2
3 3
6 4
你显然可以利用这个来改善平均情况;一个或两个其他限制也可以使它适用于最坏(可接受)的情况。