如何編寫高效的c#去重函數(shù)

c#
小樊
82
2024-09-20 07:10:38
欄目: 編程語言

在C#中,可以使用HashSet來實(shí)現(xiàn)去重

using System;
using System.Collections.Generic;
using System.Linq;

class Program
{
    static void Main()
    {
        int[] inputArray = { 1, 2, 3, 4, 4, 5, 6, 6, 7, 8, 9, 9 };
        int[] uniqueArray = RemoveDuplicates(inputArray);

        Console.WriteLine("Original array:");
        foreach (int item in inputArray)
        {
            Console.Write(item + " ");
        }

        Console.WriteLine("\nUnique array:");
        foreach (int item in uniqueArray)
        {
            Console.Write(item + " ");
        }
    }

    static int[] RemoveDuplicates(int[] inputArray)
    {
        HashSet<int> uniqueSet = new HashSet<int>(inputArray);
        return uniqueSet.ToArray();
    }
}

在這個(gè)示例中,我們首先創(chuàng)建了一個(gè)名為RemoveDuplicates的靜態(tài)方法,該方法接受一個(gè)整數(shù)數(shù)組作為參數(shù)。然后,我們使用HashSet來存儲(chǔ)數(shù)組中的唯一元素。最后,我們將HashSet轉(zhuǎn)換為數(shù)組并返回結(jié)果。

這種方法的時(shí)間復(fù)雜度為O(n),其中n是輸入數(shù)組的大小。因?yàn)镠ashSet的添加和查找操作的平均時(shí)間復(fù)雜度都是O(1)。

0