Another from the archives. This is a “real” matrix question (versus an array-of-arrays). For the people I’ve helped enter into the tech world, the bigger challenge is the vocabulary of matrix math, rather than the actual array-of-array machinery or similar. I like this one as an operation, and I’m glad it takes the time to color and otherwise illustrate what the transpose is.
In a way the straightforward solution may seem “cute”, you “just” need to swap the i/j indices. I think, however, that that’s a real insight, and a real insight you can get in an interview setting. Maybe other people would disagree. I think you can also get there the “brute force” way of just carefully thinking about what to do. The larger challenge is allocating the transpose matrix correctly.
class Solution:
def transpose(self, matrix: List[List[int]]) -> List[List[int]]:
if len(matrix) == 0: return []
T = []
for j in range(len(matrix[0])):
T.append([])
for i in range(len(matrix)):
T[j].append(matrix[i][j])
return T