跳到主要内容

566.重塑矩阵

链接:566.重塑矩阵
难度:Easy
标签:数组、矩阵、模拟
简介:给出一个由二维数组表示的矩阵,以及两个正整数 r 和 c,分别表示想要的重构的矩阵的行数和列数。重构后的矩阵需要将原始矩阵的所有元素以相同的行遍历顺序填充。如果具有给定参数的 reshape 操作是可行且合理的,则输出新的重塑矩阵;否则,输出原始矩阵。

题解 1 - typescript

  • 编辑时间:2021-02-17
  • 执行用时:104ms
  • 内存消耗:45.4MB
  • 编程语言:typescript
  • 解法介绍:先计算总数,符合后直接拼接数组。
function matrixReshape(nums: number[][], r: number, c: number): number[][] {
const sum = nums.length * nums[0].length;
if (sum !== r * c) return nums;
const arr = nums.reduce((totalArr, arr) => {
totalArr.push(...arr);
return totalArr;
}, [] as number[]);
const ans: number[][] = [];
for (let i = 0; i < r; i++) {
const temp: number[] = [];
for (let j = 0; j < c; j++) {
temp.push(arr[i * c + j]);
}
ans.push(temp);
}
return ans;
}