首页 > 其他分享 >重塑矩阵(力扣简单题)

重塑矩阵(力扣简单题)

时间:2023-02-11 11:23:34浏览次数:35  
标签:nums int 矩阵 力扣 vector 重塑

题目:

在 MATLAB 中,有一个非常有用的函数 reshape ,它可以将一个 m x n 矩阵重塑为另一个大小不同(r x c)的新矩阵,但保留其原始数据。

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

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

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

示例 1:

img

输入:mat = [[1,2],[3,4]], r = 1, c = 4
输出:[[1,2,3,4]]

示例 2:

img

输入:mat = [[1,2],[3,4]], r = 2, c = 4
输出:[[1,2],[3,4]]

思路:

想法一:

  1. 首先看重塑的矩阵是否合理,也就是要比较m* n 和 r* c的值是否相等
  2. 按行遍历输出,是将原数组按行依次填入新数组
  3. 这里遗忘了如何转化,所以直接截取官网的回答:

代码部分:

class Solution {
public:
    vector<vector<int>> matrixReshape(vector<vector<int>>& nums, int r, int c) {
        int m = nums.size();
        int n = nums[0].size();
        if (m * n != r * c) {
            return nums;
        }

        vector<vector<int>> ans(r, vector<int>(c));
        for (int x = 0; x < m * n; ++x) {
            ans[x / c][x % c] = nums[x / n][x % n];
        }
        return ans;
    }
};

作者:力扣官方题解
链接:https://leetcode.cn/problems/reshape-the-matrix/solutions/606281/zhong-su-ju-zhen-by-leetcode-solution-gt0g/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

标签:nums,int,矩阵,力扣,vector,重塑
From: https://www.cnblogs.com/isku-ran/p/17111086.html

相关文章

  • 力扣---2155. 分组得分最高的所有下标
    给你一个下标从0开始的二进制数组nums,数组长度为n。nums可以按下标i(0<=i<=n)拆分成两个数组(可能为空):numsleft和numsright。   numsleft包含nums中......
  • 买卖股票的最佳时机(力扣简单题)
    题目:给定一个数组prices,它的第i个元素prices[i]表示一支给定股票第i天的价格。你只能选择某一天买入这只股票,并选择在未来的某一个不同的日子卖出该股票。设......
  • 构造AVL树基础 + 力扣1382. 将二叉搜索树变平衡
    构造AVL树基础定义对于任意一个节点,左子树和右子树的高度差不能超过1。怎么计算标注节点的高度计算平衡因子如何维持平衡如果平衡被打破需要根据不同的情况来旋......
  • 《剑指Offer》-32-从上到下打印二叉树/力扣-102/力扣-103
    就是二叉树的层序遍历,我记得这题,用栈用队列,然后有个关键的size()Ⅰ vector<int>levelOrder(TreeNode*root){ vector<int>res; if(!root)returnres; queue<T......
  • 力扣---1797. 设计一个验证系统
    你需要设计一个包含验证码的验证系统。每一次验证中,用户会收到一个新的验证码,这个验证码在currentTime时刻之后timeToLive秒过期。如果验证码被更新了,那么它会在curre......
  • 【数组】——螺旋矩阵
    【数组】——螺旋矩阵模拟顺时针画矩阵的过程:1.填充上行从左到右2.填充右列从上到下3.填充下行从右到左4.填充左列从下到上由外向内一圈一圈这么画下去。每一条边都......
  • 用行列式求4阶逆矩阵
    矩阵M的逆矩阵等于MT的C*1/detMC=Cofactory第一步转置 第二步就是求每个位置的代数余子式的值(举个例子M的a11就变为C11的值 ) 当前位置i+j奇偶决定正负4阶的Cij......
  • 力扣701 二叉搜索树中的插入操作
     题目:给定二叉搜索树(BST)的根节点root和要插入树中的值value,将值插入二叉搜索树。返回插入后二叉搜索树的根节点。输入数据保证,新值和原始二叉搜索树中的任意节......
  • 力扣235 二叉搜索树的最近公共祖先
    题目:给定一个二叉搜索树,找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树T的两个结点p、q,最近公共祖先表示为一个结点x,满足x......
  • 在VSCode中的markdown里插入混淆矩阵HTML源码
    最近在看论文的时候习惯用markdown记录笔记,就有了如题的需求。由于原生的markdown不能合并表格的单元格(或者我不知道,OS:真菜),但是markdown支持HTML,直接写一段代码扔进去就......