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

一般情况下,对数组去重的时间复杂度为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键值的唯一性。

posted @ 2019-02-16 10:53  zmlgo  阅读(2436)  评论(0编辑  收藏  举报