題目連結:
題目意譯:
給定一矩陣 A ,回傳 A 的轉置矩陣。
一個矩陣的轉置為該矩陣沿著其主對角線翻轉,即交換矩陣的行與列之索引值。
注:
1 ≦ A.length ≦ 1000
1 ≦ A[0].length ≦ 1000
範例測資:
範例 1:
輸入: [[1,2,3],[4,5,6],[7,8,9]]
輸出: [[1,4,7],[2,5,8],[3,6,9]]
範例 2:
輸入: [[1,2,3],[4,5,6]]
輸出: [[1,4],[2,5],[3,6]]
解題思維:
將以往掃描陣列的雙層迴圈順序顛倒:
for (i = 0; i != A.length; ++i)
for (int j = 0; j != A[0].length; ++j)
變為
for (int j = 0; j != A[0].length; ++j)
for (i = 0; i != A.length; ++i)
接著按照
這題的作法將 A[i][j] 的值儲存進一個新的矩鎮 A',其大小為 A[0].length 列 × A.length 行。
此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。