Given a 2D integer array `matrix`, return the **transpose** of `matrix`.
The transpose of a matrix is the matrix flipped over its main diagonal, switching the matrix's row and column indices: cell `(i, j)` of the input becomes cell `(j, i)` of the output.
Note that the matrix may be **rectangular** (rows and columns counts can differ), so you generally cannot transpose it in place.
Example 1
Input:matrix = [[1,2,3],[4,5,6],[7,8,9]]
Output:[[1,4,7],[2,5,8],[3,6,9]]
Example 2
Input:matrix = [[1,2,3],[4,5,6]]
Output:[[1,4],[2,5],[3,6]]
Explanation:A 2x3 matrix becomes a 3x2 matrix.
Example 3
Input:matrix = [[1]]
Output:[[1]]
Constraints
- m == matrix.length
- n == matrix[i].length
- 1 <= m, n <= 100
- -10^4 <= matrix[i][j] <= 10^4