1. 程式人生 > >867. Transpose Matrix(python+cpp)

867. Transpose Matrix(python+cpp)

題目:

Given a matrix A, return the transpose of A. 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:

Input: [[1,2,3],[4,5,6],[7,8,9]] Output: [[1,4,7],[2,5,8],[3,6,9]] Example 2:

Input: [[1,2,3],[4,5,6]] Output: [[1,4],[2,5],[3,6]]

Note:

1 <= A.length <= 1000 1 <= A[0].length <= 1000

解釋: 求一個矩陣的轉置,用暴力解法即可… python程式碼:

class Solution(object):
    def transpose(self, A):
        """
        :type A: List[List[int]]
        :rtype: List[List[int]]
        """
        if not A:
            return 
        m=len(A)
        n=len(A[0])
        result=[ [0 for j in range(m)] for i in range(n)]
        for i in range(m):
            for j in range(n):
                result[j][i]=A[i][j]
        return result

c++程式碼:

class Solution {
public:
    vector<vector<int>> transpose(vector<vector<int>>& A) {
        int  m=A.size();
        int n=A[0].size();
        //建立一個二維陣列並且初始化為0
        vector<vector<int>> result(n,vector<int>(m,0));
        for(int j=0;j<n;j++)
        {
            for(int i=0;i<m;i++)
            {
                result[j][i]=A[i][j];
            }
                
        }
       return result; 
    }
};

總結: 學會使用cpp中vector的初始化,vector<int>result(n,0);