首页 > 其他分享 >重塑矩阵

重塑矩阵

时间:2023-03-09 21:35:27浏览次数:45  
标签:map mat int 矩阵 ++ 重塑

题目描述

在 MATLAB 中,有一个非常有用的函数 reshape ,它可以将一个m x n 矩阵重塑为另一个大小不同(r x c)的新矩阵,但保留其原始数据。
给你一个由二维数组 mat 表示的m x n 矩阵,以及两个正整数 r 和 c ,分别表示想要的重构的矩阵的行数和列数。
重构后的矩阵需要将原始矩阵的所有元素以相同的 行遍历顺序 填充。
如果具有给定参数的 reshape 操作是可行且合理的,则输出新的重塑矩阵;否则,输出原始矩阵。
如:
输入:mat = [[1,2],[3,4]], r = 1, c = 4
输出:[[1,2,3,4]]

解题思路

思路一:创建一个临时容器,进行数据的转存

class Solution {
    public int[][] matrixReshape(int[][] mat, int r, int c) {
        int m = mat.length;
        int n = mat[0].length;
        int s = 0;
        if (m*n == r*c) {
            //将原数组的元素依次遍历存进一个hashMap集合中
            Map<Integer,Integer> map = new HashMap<>();
            for (int i = 0; i < m; i++) {
                for (int j = 0; j < n; j++) {
                    map.put(s++,mat[i][j]);
                }
            }
            
            //将map里的元素给新的数组
            mat = new int[r][c];
            for (int i = 0; i < r; i++) {
                for (int j = 0; j < c; j++) {
                    mat[i][j] = map.get(i*c+j);
                }
            }
        }
        return mat;
}
}

 

标签:map,mat,int,矩阵,++,重塑
From: https://www.cnblogs.com/zhengfuweilai/p/17201519.html

相关文章

  • webgl 系列 —— 变换矩阵和动画
    其他章节请看:webgl系列变换矩阵和动画动画就是不停地将某个东西变换(transform)。例如将三角形不停地旋转就是一个动画和CSStransform类似,变换有三种形式:平移、缩......
  • 力扣中542 01矩阵
    题解1:广度遍历是从0出发然后一步能到的设置为1遍历矩阵设为遍历过入队再看一步能到的设置为2 题解2:动态规划     改不对bug是因为没有设置已经遍历过......
  • leetcode59. 螺旋矩阵 II
    题目描述:给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 nxn 正方形矩阵 matrix 。示例1:输入:n=3输出:[[1,2,3],[8,9,4]......
  • 一小类矩阵乘法相关归约
    今天(2023.3.7)上午大聪明LgxTpre问我区间reverse全局kth怎么做,我以为他问的是区间reverse区间kth,确认了一下问题才发现他降智了区间reverse根本不会改全局kth......
  • UVA-442 矩阵链乘 题解答案代码 算法竞赛入门经典第二版GitHub - jzplp/aoapc-UVA-Ans
    GitHub-jzplp/aoapc-UVA-Answer:算法竞赛入门经典例题和习题答案刘汝佳第二版AC代码#include<iostream>#include<string>#include<stack>usingnamespacestd;struct......
  • 数学结构化语言——逆矩阵的计算(三)
    逆矩阵是矩阵理论的一个重要概念,逆矩阵的求法一直是矩阵理论的难点。逆矩阵可以类比成数字的倒数,比如数字5的倒数是1/5,矩阵A的“倒数”是A的逆矩阵。5(1/5)=1,A(A的逆矩......
  • 数学结构化语言——矩阵的分块简化(四)
    分块矩阵是线性代数中的一个重要内容,是处理阶数较高的矩阵时常采用的技巧,也是数学在多领域的研究工具。对矩阵进行适当分块,可使高阶矩阵的运算可以转化为低阶矩阵的运算,同......
  • 稀疏矩阵存储
    稀疏矩阵存储稀疏矩阵:设在mxn的矩阵中有t个非零元素。令a=t/(mxn)当a<=0.05时称为稀疏矩阵。顺序存储结构第0行中通常用来存储总体信息。链......
  • 矩阵——乘法的核心理解
    矩阵可以被看成一个表格,每个格里面只能放数字的表格。“矩”的意思是矩形,由数字组成的矩形;“阵”的意思是整齐,这些数字排列起来是非常整齐的,并不会歪歪扭扭;矩阵中,横向的数......
  • 矩阵的变幻(旋转,转置,翻转,对角线,反对角线)
    旋转顺时针旋转90°(逆时针旋转270°)点击查看代码voidrotate_90(){ //所有矩阵适用 swap(n,m); //注意行列已互换 for(inti=1;i<=n;i++){ for(intj=......