Как бы кто-то посчитал количество уникальных предметов в списке?
Например, скажем, у меня есть {1, 3, 3, 4, 1, 3}, и я хочу получить число 3которые представляют количество уникальных элементов в списке (а именно | A | = 3, если 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. В списке.
- Для второй цикл он будет насчитывать +2 дубликата для номера 3. в списке.
- . Для третий цикл он будет считать +1 дубликатов для номера 3 снова (при пересчетепоследний «3») и вот где возникает проблема.
Есть идеи, как решить эту проблему?