Вот мой алгоритм / подход для транспонирования 2D Матрицы на главной диагонали.
До:
a L M d
b G c N
H K e F
I J O P
После:
a b H I
L G K J
M c e O
d N F P
My код:
public class Matrix {
static String[][] matrix = {
{"a", "L", "M", "d"},
{"b", "G", "c", "N"},
{"H", "K", "e", "F"},
{"I", "J", "O", "P"}
};
public void transpose(String[][] matrix) {
String[][] transposedArray = new String [4][4];
for (int row =0; row < 4; row ++) {
for (int col = 0; col < 4; col++) {
transposedArray[row][col] = matrix[col][row];
}
}
}
}
Какова временная и пространственная сложность этого подхода?
Есть ли лучшее оптимальное решение?