# C#LeetCode刷题之#867-转置矩阵（Transpose Matrix）

1 <= A.length <= 1000
1 <= A[0].length <= 1000

Given a matrix A, return the transpose of A.

The transpose of a matrix is the matrix flipped over it’s main diagonal, switching the row and column indices of the matrix.

Input: [[1,2,3],[4,5,6],[7,8,9]]

Output: [[1,4,7],[2,5,8],[3,6,9]]

Input: [[1,2,3],[4,5,6]]

Output: [[1,4],[2,5],[3,6]]

Note:

1 <= A.length <= 1000
1 <= A[0].length <= 1000

```public class Program {

public static void Main(string[] args) {
int[][] nums = null;

nums = new int[3][] {
new int[] {1, 2, 3},
new int[] {4, 5, 6},
new int[] {7, 8, 9}
};

var res = Transpose(nums);
ShowArray(res);

}

private static void ShowArray(int[][] array) {
foreach(var line in array) {
foreach(var num in line) {
Console.Write(\$"{num} ");
}
}
Console.WriteLine();
}

private static int[][] Transpose(int[][] A) {
var m = A.Length;
var n = A[0].Length;
var result = new int[n][];
for(int i = 0; i < n; i++) {
result[i] = new int[m];
}
for(var i = 0; i < n; i++) {
for(var j = 0; j < m; j++) {
result[i][j] = A[j][i];
}
}
return result;
}

}```

`1 4 7 2 5 8 3 6 9`