【C#】重塑矩阵(交错数组)

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/reshape-the-matrix
 

给一个由二维数组 mat 表示的 m x n 矩阵,以及两个正整数 r 和 c ,分别表示想要的重构的矩阵的行数和列数。

重构后的矩阵需要将原始矩阵的所有元素以相同的 行遍历顺序 填充。

如果具有给定参数的 reshape 操作是可行且合理的,则输出新的重塑矩阵;否则,输出原始矩阵。

【C#】重塑矩阵(交错数组)_第1张图片

m == mat.length
n == mat[i].length
1 <= m, n <= 100
-1000 <= mat[i][j] <= 1000
1 <= r, c <= 300

public class Solution {
    public int[][] MatrixReshape(int[][] mat, int r, int c) {
        int m=mat.Length;
        int n=mat[0].Length;
        if(m*n!=r*c) return mat;
        Queue queue=new Queue();
        int i,j;
        for(i=0;i

还可利用整除取余来表示新矩阵的行列(看起来高级,但挺耗时的):

        for(i=0;i

【C#】重塑矩阵(交错数组)_第2张图片

附加一个[3,3,9]的三维数组:

int[,,] boxes = {
                    {
                        { 0,1,2,3,4,5,6,7,8,9},
                        { 0,1,2,3,4,5,6,7,8,9},
                        { 0,1,2,3,4,5,6,7,8,9}
                    } ,
                    {
                        { 0,1,2,3,4,5,6,7,8,9},
                        { 0,1,2,3,4,5,6,7,8,9},
                        { 0,1,2,3,4,5,6,7,8,9}
                    },
                    {
                        { 0,1,2,3,4,5,6,7,8,9},
                        { 0,1,2,3,4,5,6,7,8,9},
                        { 0,1,2,3,4,5,6,7,8,9}
                    }
                };

你可能感兴趣的:(C#,数据结构,c#,数据结构)