本题目要求将一个2维的矩阵变形为规定行列数的矩阵输出。
解题思路:采用流的思想,将原来的矩阵中的数据存到1维数组中,再创建一个题目要求的2维矩阵,将1维数组中保存的数据安要求输出到新的矩阵中。
代码如下:
class Solution {
public int[][] matrixReshape(int[][] nums, int r, int c) {
int h=nums.length;
int l=nums[0].length;
int total_num=h*l;
int []a=new int[total_num];
int num=0;
int [][]b=new int[r][c];
if(total_num<r*c){
return nums;
}
for(int i=0;i<h;i++)
{
for(int j=0;j<l;j++)
{
a[num++]=nums[i][j];
}
}
num=0;
for(int i=0;i<r;i++)
{
for(int j=0;j<c;j++)
{
b[i][j]=a[num++];
}
}
return b;
}
}