From ec15e6041a7e1b55b7429e48275ed275acf9ef13 Mon Sep 17 00:00:00 2001 From: Ted Unangst Date: Sat, 19 Oct 2019 15:37:33 -0400 Subject: [PATCH] rewrite oneofakind with map since we're starting to see longer arrays --- fun.go | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/fun.go b/fun.go index 1a284ee..97c1929 100644 --- a/fun.go +++ b/fun.go @@ -538,18 +538,17 @@ func firstclass(honk *Honk) bool { } func oneofakind(a []string) []string { - var x []string - for n, s := range a { - if s != "" { - x = append(x, s) - for i := n + 1; i < len(a); i++ { - if a[i] == s { - a[i] = "" - } - } + seen := make(map[string]bool) + seen[""] = true + j := 0 + for _, s := range a { + if !seen[s] { + seen[s] = true + a[j] = s + j++ } } - return x + return a[:j] } var ziggies = make(map[string]*rsa.PrivateKey)