Sha256: eb880f9be7193a6953bcc8c096754b4f29061b70efe43df1aeb9c9ee3af43e97

Contents?: true

Size: 1.12 KB

Versions: 396

Compression:

Stored size: 1.12 KB

Contents

struct SaddlePointsMatrix {

    let rows: [[Int]]
    let columns: [[Int]]
    let saddlePoints: [[Int]]

    init(_ matrix: String) {
        var rows = [[Int]]()

        let rowItems = matrix.characters.split(separator: "\n").map { String($0) }

        for row in rowItems {
            let rowItems = row.characters.split(separator: " ").map { Int(String($0)) ?? 0 }
            rows.append(rowItems)
        }

        self.rows = rows

        var columns = [[Int]]()

        let count = rows[0].count
        for i in 0..<count {
            var column = [Int]()

            for row in rows {
                column.append(row[i])
            }

            columns.append(column)
        }

        self.columns = columns

        var saddlePoints = [[Int]]()
        for (j, row) in rows.enumerated() {
            let max = row.max() ?? 0
            for (i, number) in row.enumerated() {
                let min = columns[i].min() ?? 0
                if number == max && number == min {
                    saddlePoints.append([j, i])
                }
            }
        }

        self.saddlePoints = saddlePoints
    }

}

Version data entries

396 entries across 396 versions & 1 rubygems

Version Path
trackler-2.2.1.180 tracks/swift/exercises/saddle-points/Sources/SaddlePointsExample.swift
trackler-2.2.1.179 tracks/swift/exercises/saddle-points/Sources/SaddlePointsExample.swift
trackler-2.2.1.178 tracks/swift/exercises/saddle-points/Sources/SaddlePointsExample.swift
trackler-2.2.1.177 tracks/swift/exercises/saddle-points/Sources/SaddlePointsExample.swift
trackler-2.2.1.176 tracks/swift/exercises/saddle-points/Sources/SaddlePointsExample.swift
trackler-2.2.1.175 tracks/swift/exercises/saddle-points/Sources/SaddlePointsExample.swift
trackler-2.2.1.174 tracks/swift/exercises/saddle-points/Sources/SaddlePointsExample.swift
trackler-2.2.1.173 tracks/swift/exercises/saddle-points/Sources/SaddlePointsExample.swift
trackler-2.2.1.172 tracks/swift/exercises/saddle-points/Sources/SaddlePointsExample.swift
trackler-2.2.1.171 tracks/swift/exercises/saddle-points/Sources/SaddlePointsExample.swift
trackler-2.2.1.170 tracks/swift/exercises/saddle-points/Sources/SaddlePointsExample.swift
trackler-2.2.1.169 tracks/swift/exercises/saddle-points/Sources/SaddlePointsExample.swift
trackler-2.2.1.167 tracks/swift/exercises/saddle-points/Sources/SaddlePointsExample.swift
trackler-2.2.1.166 tracks/swift/exercises/saddle-points/Sources/SaddlePointsExample.swift
trackler-2.2.1.165 tracks/swift/exercises/saddle-points/Sources/SaddlePointsExample.swift
trackler-2.2.1.164 tracks/swift/exercises/saddle-points/Sources/SaddlePointsExample.swift
trackler-2.2.1.163 tracks/swift/exercises/saddle-points/Sources/SaddlePointsExample.swift
trackler-2.2.1.162 tracks/swift/exercises/saddle-points/Sources/SaddlePointsExample.swift
trackler-2.2.1.161 tracks/swift/exercises/saddle-points/Sources/SaddlePointsExample.swift
trackler-2.2.1.160 tracks/swift/exercises/saddle-points/Sources/SaddlePointsExample.swift