【发布时间】:2011-03-14 14:15:54
【问题描述】:
有人会如何继续计算列表中唯一项目的数量?
例如说我有 {1, 3, 3, 4, 1, 3} 并且我想得到代表列表中唯一项目数的数字 3(即 |A|=3 if A={ 1、3、4})。有人会为此使用什么算法?
我尝试了双循环:
for firstItem to lastItem
currentItem=a
for currentItem to lastItem
currentItem=b
if a==b then numberOfDublicates++
uniqueItems=numberOfItems-numberOfDublicates
这不起作用,因为它计算的重复次数比实际需要的次数多。以开头的示例为例:
- 对于第一个循环,它将计算列表中第 1 位的 +1 个重复项。
- 对于第二个循环,它将计算列表中第 3 位的 +2 个重复项。
- 对于第三个循环,它会再次计算数字 3 的 +1 重复项(多算最后一个 '3')和 这就是问题所在。
你知道如何解决这个问题吗?
【问题讨论】:
标签: algorithm list count unique items