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