1. 程式人生 > >leetcode題解之566

leetcode題解之566

566.重塑矩陣
在MATLAB中,有一個非常有用的函式 reshape,它可以將一個矩陣重塑為另一個大小不同的新矩陣,但保留其原始資料。

給出一個由二維陣列表示的矩陣,以及兩個正整數r和c,分別表示想要的重構的矩陣的行數和列數。

重構後的矩陣需要將原始矩陣的所有元素以相同的行遍歷順序填充。

如果具有給定引數的reshape操作是可行且合理的,則輸出新的重塑矩陣;否則,輸出原始矩陣。

思路:簡單題,需要注意以下R,C值的合理性
程式碼:

class Solution {
    public int[][] matrixReshape(int[][] nums,
int r, int c) { if(nums == null || nums.length == 0){ return nums; } if(r * c != nums.length * nums[0].length){ return nums; } int[][] newNums = new int[r][c]; int m = 0; int n = 0; for(int i = 0 ;i < nums.length;
i++){ for(int j = 0; j < nums[i].length; j++){ if(n ==c){ m++; n = 0; } newNums[m][n++] = nums[i][j]; } } return newNums; } }