Given a 2D Matrix, return the transpose of it.
The transpose of a matrix is the matrix flipped over it’s main diagonal, switching the row and column indices of the matrix.
Example:
1 2 3 4 5 6 7 8 9
The transpose of above matrix should be:
1 2 3 4 5 6
As we can see, ,the rows and columns are swapped.
C++ method to Transpose a 2D Matrix
First of all, we need to allocate the result matrix with rows and columns dimensions swapped. Then, we just need to assign using the indices swapped. The C++ method to swap a 2D matrix (represented by vector) is given below:
class Solution {
public:
vector<vector<int>> transpose(vector<vector<int>>& A) {
int rows = A.size();
if (rows == 0) return {{}};
int cols = A[0].size();
vector<vector<int>> r(cols, vector<int>(rows));
for (int i = 0; i < rows; ++ i) {
for (int j = 0; j < cols; ++ j) {
r[j][i] = A[i][j];
}
}
return r;
}
};
The runtime complexity is O(n^2) and the space complexity is O(n^2) as well.
–EOF (The Ultimate Computing & Technology Blog) —
Last Post: VPS Tool/API Server Upgraded to Four Cores!
Next Post: How to Find Top K Frequent Elements via Priority Queue or Sorting?