一般情況下,對數組去重的時間復雜度為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鍵值的唯一性。