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.



&nbsp;
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]]


&nbsp;
Constraints:


	m == matrix.length
	n == matrix[i].length
	1 &lt;= m, n &lt;= 1000
	1 &lt;= m * n &lt;= 105
	-109 &lt;= matrix[i][j] &lt;= 109


class Solution:
    def transpose(self, matrix: List[List[int]]) -> List[List[int]]:
        rows=len(matrix)
        cols=len(matrix[0])
        ans=[[0]*rows]*cols
        for i in range(cols):
            for j in range(rows):
                ans[i][j]=matrix[j][i]
        return ans
class Solution {
    public int[][] transpose(int[][] matrix) {
        int m = matrix.length;
        int n = matrix[0].length;

        int[][] trans = new int[n][m];

        for(int i = 0; i < n; i++) {
            for(int j = 0; j < m; j++) {
                trans[i][j] = matrix[j][i];
            }
        }

        return trans;
    }
}
class Solution {
public:
    vector<vector<int>> transpose(vector<vector<int>>& matrix) {
        
        vector<vector<int>>result;
        map<int,vector<int>>m;
        
        for(int i=0;i<matrix.size();i++){
            vector<int>v = matrix[i];
            for(int j=0;j<v.size();j++){
                m[j].push_back(v[j]);
            }
        }
        
        for(auto i:m){
            result.push_back(i.second);
        }
        return result;
    }
};
var transpose = function(matrix){
    let result = []
    for(let i=0;i<matrix[0].length;i++){

        let col = []

        for(let j= 0;j<matrix.length;j++){
            col.push(matrix[j][i])
        }
        result.push(col)
    }
    return result
};

    console.log(transpose( [ [1 , 2 , 3] , [ 4 , 5 , 6 ] , [ 7 , 8 , 9 ] ] ) )
Transpose Matrix