On Tue, 22 May 2018 10:59:24 -0700 Sankar <sankar.curios...@gmail.com> wrote:
> 
> Is there a way to use a slice as a key to a map ? If I try, I get a 
> compilation error: `invalid map key type`. 
> 
> I tried creating a custom type, which contains an array as the element. 
> However, I could not find out what method to implement for my custom 
> type(such as: func (i *myType) Equal(j *myType) bool ) that would make the 
> equality operator call this function. 
> 
> An example program, where I needed to use a slice/array as the key of a map 
> is also available at: https://play.golang.org/p/kXwAaHckL76 
> 
> Is there a way (or alternate solutions) to use a slice as the map key ? 

Your example problem is solvable without needing a map[slice].

Outline: sort the array, put duplicates in the same slot. Thus
for example [-1, 0, 1, 2, -1, -4] turns into
[{-4},{-1,-1},{0},{1},{2}]

Now for a given number N with D duplicates you can pick 0..D
elements. Thus for the example list, we have 2x3x2x2x2
combinations with duplicates (i.e. 48 instead of 64, if there
were no duplicates) containing 0 to 5 numbers.  Throw out all
non-triples as well as nonzero triples.

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to