Wie kann der Index eines Elements in einem mehrdimensionalen Array schnell gefunden werden?

Sagen wir, ich habe dieses Array:

let a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

Jetzt möchte ich so etwas:

    public func indicesOf(x: Int, array: [[Int]]) -> (Int, Int) {
        ...
    }

so dass ich es so nennen kann:

indicesOf(7, array: a) // returns (2, 0)

atürlich kann ich verwenden:

for i in 0..<array.count {
    for j in 0..<array[i].count {
        if array[i][j] == x {
            return (i, j)
        }
    }
}

Aber das ist nicht mal annähernd so schnell!

Ich möchte einen schnellen Weg, dies zu tun. Ich denke, vielleicht kann ich @ verwendreduce odermap?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage