Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Semrush - keyword research tool

Turn ChatGPT, Claude, Gemini, And CoPilot Into Your Personal Assistant, Business Coach, Content Creator, And More

AFFILIATE MARKETING Your all-in-one performance engine Manage affiliates, creators, and customer referrals in one unified platform—turning every partnership into measurable growth
Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

42,683 questions

55,436 answers

573 users

How to create a sorted unique list from a matrix in Go

1 Answer

0 votes
package main

import (
    "fmt"
    "sort"
)

/*
    Create a sorted unique slice (slc) from a matrix.
    Steps:
      1. Flatten matrix into slc
      2. Sort slc (sort.Ints)
      3. Remove duplicates in-place
*/

func makeSortedUniqueSlc(mat [3][8]int) []int {
    // Flatten matrix into slc
    slc := make([]int, 0, len(mat)*len(mat[0]))
    for _, row := range mat {
        for _, x := range row {
            slc = append(slc, x)
        }
    }

    // Sort slc
    sort.Ints(slc)

    // Remove duplicates in-place
    u := 0
    for i := 0; i < len(slc); i++ {
        if i == 0 || slc[i] != slc[i-1] {
            slc[u] = slc[i]
            u++
        }
    }

    return slc[:u]
}

func main() {
    mat := [3][8]int{
        {5, 1, 17, 3, 8, 2, 1, 9},
        {3, 5, 7, 4, 2, 3, 4, 1},
        {9, 1, 8, 2, 3, 88, 17, 5},
    }

    slc := makeSortedUniqueSlc(mat)

    for _, x := range slc {
        fmt.Print(x, " ")
    }
}



/*
run:

1 2 3 4 5 7 8 9 17 88

*/

 



answered May 7 by avibootz
...