リスト内の一意のアイテムの数をどのように数えますか?
たとえば、{1, 3, 3, 4, 1, 3} があり、リスト内の一意のアイテムの数を表す数値 3 を取得したいとします (つまり、A={1, 3 の場合 |A|=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 に対して +2 個の重複がカウントされます。
- 3 番目のループでは、番号 3 の +1 重複を再度カウントし (最後の「3」を過大評価)、ここで問題が発生します。
これを解決する方法について何か考えはありますか?