LeetCode每日一題: 轉置矩陣(No.867)

胖宅老鼠發表於2019-04-20

題目:轉置矩陣


給定一個矩陣 A, 返回 A 的轉置矩陣。
矩陣的轉置是指將矩陣的主對角線翻轉,交換矩陣的行索引與列索引。
複製程式碼

示例:


輸入:[[1,2,3],[4,5,6],[7,8,9]]
輸出:[[1,4,7],[2,5,8],[3,6,9]]

輸入:[[1,2,3],[4,5,6]]
輸出:[[1,4],[2,5],[3,6]]
複製程式碼

思考:


一個m*n的矩陣,按題目的要求轉置後會變成n*m的矩陣。
按照題意,轉置規則就是第[m][n]個元素與第[n][m]個元素賈環交換。
所以新new一個二維陣列,將就陣列中的第[m][n]個元素賦值到新陣列第[n][m]個元素位置上即可。
複製程式碼

實現:


class Solution {
    public int[][] transpose(int[][] A) {
        int row = A.length, col = A[0].length;
        int[][] result = new int[col][row];
        for (int m = 0; m < row; ++m)
            for (int n = 0; n < col; ++n) {
                result[n][m] = A[m][n];
            }
        return result;
    }
}複製程式碼

相關文章