有人会如何继续计算列表中唯一项目的数量?
例如说我有 {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”),这就是问题所在。
关于如何解决这个问题的任何想法?