← Loops

Matrix Transpose

Medium
Python
def transpose(matrix):
    return list(map(list,zip(*matrix)))
Java
public int[][] transpose(int[][] matrix){
    int m=matrix.length,n=matrix[0].length;
    int[][] res=new int[n][m];
    for(int i=0;i<m;i++)
        for(int j=0;j<n;j++)
            res[j][i]=matrix[i][j];
    return res;
}

Key Insight

Python zip(*matrix) transposes in one expression. Java needs nested loops.

Python → Java Differences

  • zip(*matrix) Python transpose trick
  • Java needs nested loops
  • map(list,...) converts tuples to lists
Python
def transpose(matrix):
    return list(map(list,zip(*matrix)))
Java
public int[][] transpose(int[][] matrix){
    int m=matrix.length,n=matrix[0].length;
    int[][] res=new int[n][m];
    for(int i=0;i<m;i++)
        for(int j=0;j<n;j++)
            res[j][i]=matrix[i][j];
    return res;
}

Algorithm Steps

1. Swap rows and columns