給定一個二維的矩陣以及正整數 r 與 c ,將此矩陣轉為 r * c 的矩陣。
若無法轉換,則輸出原本的矩陣。 ## 輸入 ## nums = [[1,2], [3,4]] r = 1, c = 4 ## 輸出 ## [[1,2,3,4]] ## 方法 ## 檢查兩個矩陣的行數與列數相乘的結果是否相同,若成立代表這兩個矩陣的元素個數相同,也就是兩個矩陣能夠互相轉換。
接著將原本 2D 的矩陣轉成 1D ,這樣在轉換成另一個大小的矩陣時會比較方便,只要依序取出即可。
1 2 3 4 5 6 7 8 9 10 11 12 13 14
classSolution(object): defmatrixReshape(self, nums, r, c): row = len(nums) col = len(nums[0]) if row * col == r * c: one_d_array = [nums[i][j] for i in range(row) for j in range(col)] ans = [[0for j in range(c)] for i in range(r)] count_element = 0 for i in range(r): for j in range(c): ans[i][j] = one_d_array[count_element] count_element += 1 return ans return nums