Free polyominoes enumeration: Difference between revisions
m
→{{header|Go}}: Minor simplifications. Added comment about use of intermediate set .
(Added Go) |
m (→{{header|Go}}: Minor simplifications. Added comment about use of intermediate set .) |
||
Line 609:
func (po polyomino) newPoints() polyomino {
pset := po.toPointset()
m := make(pointset)
for _, p := range po {
pts := p.contiguous()
for _, pt := range pts {
if
m[pt] = true // using an intermediate set is about 15% faster!
}
}
Line 655:
for _, po := range r {
for _, po2 := range po.newPolys() {
if s := po2.String(); !m[s] {
polys = append(polys, po2)
m[s] = true
|