本文主要是介绍算法入门第四天:566. 重塑矩阵(含有详细注释),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在 MATLAB 中,有一个非常有用的函数 reshape ,它可以将一个 m x n 矩阵重塑为另一个大小不同(r x c)的新矩阵,但保留其原始数据。
给你一个由二维数组 mat 表示的 m x n 矩阵,以及两个正整数 r 和 c ,分别表示想要的重构的矩阵的行数和列数。
重构后的矩阵需要将原始矩阵的所有元素以相同的 行遍历顺序 填充。
如果具有给定参数的 reshape 操作是可行且合理的,则输出新的重塑矩阵;否则,输出原始矩阵。
class Solution {public int[][] matrixReshape(int[][] nums, int r, int c) {int m = nums.length;int n = nums[0].length;//如果操作不合理,返回原始矩阵if (m * n != r * c) {return nums;}int[][] ans = new int[r][c]; // /的话:<C的都是0 C<x<2C 的都等于1 依次类推// %的话:0<=x<=C-1// ans[x / c][x % c] = nums[x / n][x % n];// 这样就实现了把原数组的元素,依次赋值给新数组for (int x = 0; x < m * n; x++) {ans[x / c][x % c] = nums[x / n][x % n];}return ans;}
}
这篇关于算法入门第四天:566. 重塑矩阵(含有详细注释)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!