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