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

1 Answer

0 votes
/*
    Create a sorted unique array (arr) from a matrix (arr of arr).
    Steps:
      1. Flatten matrix into arr
      2. Sort arr
      3. Remove duplicates (using Set)
*/

func makeSortedUniqueArr(_ mat: [[Int]]) -> [Int] {
    // Flatten matrix into arr
    let arr = mat.flatMap { $0 }

    // Sort arr and remove duplicates
    let arrUnique = Array(Set(arr)).sorted()

    return arrUnique
}

let mat = [
    [5, 1, 17, 3, 8, 2, 1, 9],
    [3, 5, 7, 4, 2, 3, 4, 1],
    [9, 1, 8, 2, 3, 88, 17, 5]
]

let arr = makeSortedUniqueArr(mat)

arr.forEach { print($0, terminator: " ") }



/*
run:

1 2 3 4 5 7 8 9 17 88

*/

 



answered 6 days ago by avibootz
...