如何快速的对数组元素去重

一般情况下,对数组去重的时间复杂度为O(n^2),但利用map数据结构可达到O(n),Go语言的实现如下:

func DeleteRepeat(list []string) []string {
    mapdata := make(map[string]interface{})
    if len(list) <= 0 {
        return nil
    }
    for _, v := range list {
        mapdata[v] = "true"
    }
    var datas []string
    for k, _ := range mapdata {
        if k == "" {
            continue
        }
        datas = append(datas, k)
    }
    return datas
}

主要原理是利用了map键值的唯一性。

猜你喜欢

转载自www.cnblogs.com/share-ideas/p/10387029.html