java数据结构与算法刷题-----LeetCode566. 重塑矩阵

IEEE ACCESS Please note that all author names should be listed in English.(所有作者名需用英文名列出) 很奇怪哈,我明明手稿和提交页面作者都是用的英文,但是为什么还是会提示我没用英文呢?后来给编辑发消息,回的很快,他给我发了一个截图,确实是出现中文,但是我还是不知道为啥会出现中文。直到晚上回寝室洗澡的时候忽然想起来了是不是orcid的原因,因为它会强制作者绑定一个orcid账号,而我的orcid账号的名字刚好是中文的。当然这个只是我的一个猜想,但是我觉得可能性很大。我的第二篇论文已经投稿了快三个月了,效果非常的不好,所以我打算转投IEEE ACCESS了,希望这里可以给我一点好的建议。 阅读详情
java数据结构与算法刷题目录(剑指Offer、LeetCode、ACM)-----主目录-----持续更新(进不去说明我没写完):https://blog.youkuaiyun.com/grd_java/article/details/123063846

在这里插入图片描述

1. 法一,下标填充

代码:时间复杂度O(r*c).除题目要求外,算法本身没有需要额外空间,空间复杂度O(1)

在这里插入图片描述

class Solution {
    public int[][] matrixReshape(int[][] mat, int r, int c) {
        int matR = mat.length,matC = mat[0].length;//获取原矩阵的行和列数
        if(r*c != matR*matC) return mat;//如果不合理,直接返回原始矩阵
        int[][] ans = new int[r][c];//如果合理,创建需要重塑的矩阵容器
        int ansI = 0, ansJ = 0;//重塑矩阵专用的两个下标,代表行和列
        for(int i = 0;i<matR;i++){//依次遍历原矩阵元素,按行遍历
            for(int j = 0;j<matC;j++){//依次从左到右遍历原矩阵元素
                ans[ansI][ansJ] = mat[i][j];//将其放到重塑矩阵
                if(ansJ==c-1){//如果重塑矩阵当前行放满了
                    ansI++;//转到下一行
                    ansJ = 0;//转到第一列
                }else ansJ++;//如果重塑矩阵当前行没放满,去往当前行下一列(下一个位置放)
            }
        }
        return ans;
    }
}

2. 法二:数学除法和取余

在这里插入图片描述

  1. 从0开始算,一个3列n行矩阵中,每行就有3个元素,我们从头开始数,第15个元素,在第几行?当然是15/3=5
  2. 知道是第5行,那么在第5行的第几列呢?当然是让它15%3 = 0; 也就是放在第0个位置,也就是[5][0]位置
  3. 如果我们将其放到4列n行矩阵中,每行有4个元素,从头开始算,第15个元素在第几行?当然是15/4 = 3
  4. 第几列呢?15%4 = 3. 也就是[3][3]位置
代码:时间复杂度O(r*c).除题目要求外,算法本身没有需要额外空间,空间复杂度O(1)

在这里插入图片描述

class Solution {
    //从0开始算,一个3列n行矩阵中,每行就有3个元素,我们从头开始数,第15个元素,在第几行?当然是15/3=5
    //知道是第5行,那么在第5行的第几列呢?当然是让它15%3 = 0; 也就是放在第0个位置,也就是[5][0]位置
    //如果我们将其放到4列n行矩阵中,每行有4个元素,从头开始算,第15个元素在第几行?当然是15/4 = 3
    //第几列呢?15%4 = 3. 也就是[3][3]位置
    public int[][] matrixReshape(int[][] mat, int r, int c) {
        int matR = mat.length,matC = mat[0].length;//获取原矩阵的行和列数
        if(r*c != matR*matC) return mat;//如果不合理,直接返回原始矩阵
        int[][] ans = new int[r][c];//如果合理,创建需要重塑的矩阵容器
        //利用除法和取余,获取每个元素应该在的位置
        for(int i = 0; i< matR*matC;i++) ans[i/c][i%c] = mat[i/matC][i%matC];
        return ans;
    }
}
微信小游戏CE修改实战:从入门到精通(附防作弊思路) 本文深入探讨微信小游戏的安全攻防实战,重点分析CE修改、反编译和重打包等安全风险。通过详细的内存修改案例和代码保护方案对比,提供从客户端到服务端的全方位防护策略,帮助开发者构建有效的防作弊体系。 阅读详情

相关推荐

555定时器呼吸灯电路制作全攻略:从仿真到实物搭建(附避坑指南)

本文详细介绍了使用555定时器制作呼吸灯电路的完整流程,从基础原理到实物搭建,包括电路设计、元件选择、仿真验证、焊接技巧及调试优化。特别提供了避坑指南,帮助电子爱好者快速掌握这一经典DIY项目,实现美观的呼吸灯效果。

weixin_33734785的博客 402

Java实现 LeetCode 566 重塑矩阵(遍历矩阵)

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

南 墙 1万+

Unity 2021 LTS安装避坑指南:从下载到第一个3D项目的完整流程

本文提供了一份详尽的Unity 2021 LTS安装与首个3D项目创建指南。内容涵盖从Unity Hub下载、版本选择、模块安装避坑,到编辑器界面解析、创建旋转立方体脚本的完整流程,旨在帮助初学者快速搭建稳定开发环境并上手核心操作。

mango的博客 312

LeetCode题练习与总结:重塑矩阵--566

本文详细介绍了如何将一个 m x n 矩阵重塑为 r x c 的新矩阵,包括解题思路、具体代码实现、时间复杂度与空间复杂度分析,以及涉及的编程知识点,为矩阵重塑问题提供了全面的解决方案。

一直学习永不止步 1661

05-SA8155 QNX Display框架及代码分析(1)

显示是非常重要的一个模块,人机交互的桥梁。那么SA8155 Hypervisor显示是如何处理的呢。对处理流程非常的好奇O(∩_∩)O哈哈~。TODO。

静虚待令,有物混成 1万+

后向投影算法(BPA)-SAR成像算法系列(二)

SAR成像算法:后向投影算法(BPA)原理介绍及实现步骤解析。

yjh_2019的博客 1万+

LeetCode 566 重塑矩阵 Java实现

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

BedivereAlter的博客 181

用友YonSuite产品实操手把手教学(图文版)

用友YonSuite

ct341688的博客 8178

力扣每日一练之二维数组上篇Day4

力扣每日一练之二维数组上篇Day4 🍕前面的话🥞 大家好!本篇文章将介绍2周搞定数据结构的题,来自力扣的566.重塑矩阵和118.杨辉三角,本文将以这两道题作为背景,介绍经典的杨辉三角以及矩阵模拟,展示语言为java(博主学习语言为java)。今天呢,是博主开始刷力扣的第四天,如果有想要开始准备自己的算法面试的同学,可以跟着我的脚步一起,共同进步。大家都是并肩作战的伙伴,一起努力奋力前行,路漫漫其修远兮,吾将上下而求索,相信我们一定都可以拿到自己期望的offer,冲冲冲! 👩‍💻博客主页:京与旧铺的博客主

qq_46272491的博客 1755

Vitis HLS 学习指南与实践教程

Vitis HLS 学习指南与实践教程摘要:本文系统介绍了AMD Vitis HLS工具及其应用。HLS技术将C/C++代码自动转换为硬件描述语言,显著提升FPGA开发效率(5-10倍)。文章对比了HLS与传统RTL设计的优势,包括抽象级别高、开发周期短、代码重用性强等特点。详细讲解了Vitis HLS工具链的核心功能,包括支持的C/C++特性(如任意精度数据类型)、开发流程(项目创建-代码编写-仿真-综合)以及关键优化技术(流水线、循环展开、数组分割等编译指示)。通过具体代码示例展示了HLS设计方法,为F

weixin_44707118的博客 1401

7 中望CAD二次开发-标注(一)(ZRX C++)

尺寸标注是CAD设计中最常用的功能之一,软件内置了很多标注功能,可以通过使用这些标注工具,对需要标注的长度、角度等一个个进行标注。但这显然效率很低,学习CAD二次开发,就是要把人从重复的劳动中解放出来,实现批量标注。本文介绍,如何通过二次开发进行标注。

cilvsuanna的博客 340

leetcode刷题记录

刷题过程记录

洪肥肥的博客 2063

解锁Vscode:C/C++环境配置超详细指南

本文详细介绍如何在 VSCode 中配置 C/C++ 开发环境,帮助开发者快速搭建高效的编码调试环境。内容涵盖前期准备、软件下载安装、环境变量配置、工作区文件设置及测试运行全流程:首先需准备 VSCode 编辑器、MinGW-w64 编译器及 C/C++ 插件;接着完成工具下载与安装,配置系统环境变量以确保编译器可全局调用;然后通过创建.vscode工作区文件夹,配置核心文件,实现代码智能提示与调试功能;最后通过编写 Hello World 示例验证环境可用性,并附上常见问题排查方案。

邓邓子的博客 3047

leetcode-数据结构-566. 重塑矩阵

第 x 个元素在 nums 中对应的下标为 (x / n,x % n),x为一维数组中的索引位置。C++ 语言中返回的是原数组的一份拷贝,本质上需要的时间复杂度为 O(mn),它可以将一个 m x n 矩阵重塑为另一个大小不同(r x c)的新矩阵,但保留其原始数据。而其余语言可以直接返回原数组的对象,需要的时间复杂度仅为 O(1)。* 我们可以通过下面的方式,将其中的每个元素 (i, j) 映射到整数域内,著作权归领扣网络所有。而在新的重塑矩阵中对应的下标为 (x / c,x % c)。

qq_51948464的博客 263

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

LeetCode——566. 重塑矩阵(Reshape the Matrix)[简单]——分析及代码(Java)

LeetCode——566. 重塑矩阵[Reshape the Matrix][简单]——分析及代码[Java]一、题目二、分析及代码1. 直接转换(1)思路(2)代码(3)结果三、其他 一、题目 在MATLAB中,有一个非常有用的函数 reshape,它可以将一个矩阵重塑为另一个大小不同的新矩阵,但保留其原始数据。 给出一个由二维数组表示的矩阵,以及两个正整数r和c,分别表示想要的重构的矩阵的行数和列数。 重构后的矩阵需要将原始矩阵的所有元素以相同的行遍历顺序填充。 如果具有给定参数的reshape操作是

江南土豆的博客 245

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

数据结构——leetcode(数组与矩阵)【java】

数据结构——leetcode(数组与矩阵)【java】leetcode-242-有效字母异位词 leetcode-242-有效字母异位词 力扣-242 题目:给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词 示例: 输入: s = “anagram”, t = “nagaram” 输出: true 输入: s = “rat”, t = “car” 输出: false 思路:可以用hashmap存储,由于是字符串,只有26位,可以用数组来储存。 public boolean i

weixin_44952377的博客 825

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

数据结构训练营4

为了备战蓝桥杯,数据结构训练营4,希望得到大家的监督,没有其他想法,仅仅是为了自我砥砺

weixin_64308540的博客 605

力扣566题:重塑矩阵

给出一个由二维数组表示的矩阵,以及两个正整数r和c,分别表示想要的重构的矩阵的行数和列数。重构后的矩阵需要将原始矩阵的所有元素以相同的行遍历顺序填充。如果具有给定参数的reshape操作是可行且合理的,则输出新的重塑矩阵;否则,输出原始矩阵 示例 1: 输入: nums = [[1,2], [3,4]] r = 1, c = 4 输出: [[1,2,3,4]] 解释: 行遍历nums的结果是 [1,2,3,4]。新的矩阵是 1 * 4 矩阵, 用之前的元素值一行一行填充新矩阵 示例 2: 输入: nu

桃花er的博客 271

LeetCode 566. 重塑矩阵

LeetCode 566. 重塑矩阵 文章目录LeetCode 566. 重塑矩阵题目描述一、解题关键词二、解题报告1.思路分析2.时间复杂度3.代码示例2.知识点总结 题目描述 在 MATLAB 中,有一个非常有用的函数 reshape ,它可以将一个 m x n 矩阵重塑为另一个大小不同(r x c)的新矩阵,但保留其原始数据。 给你一个由二维数组 mat 表示的 m x n 矩阵,以及两个正整数 r 和 c ,分别表示想要的重构的矩阵的行数和列数。 重构后的矩阵需要将原始矩阵的所有元素以相同的 行

Datao_csdn的博客 201

leetcode 566. 重塑矩阵(Java版,坐标转换)

题目 https://leetcode-cn.com/problems/reshape-the-matrix/ 题解 草稿是将 34 矩阵转化为 43 矩阵的例子: 做完之后发现思路与官方题解一致,直接贴官方题解吧。 class Solution { public int[][] matrixReshape(int[][] mat, int r, int c) { int row = mat.length; int column = mat[0].length;

寒泉 5万+

java leetcode之[数据结构 简单]566. 重塑矩阵

题目的链接在这里:https://leetcode-cn.com/problems/reshape-the-matrix/ 目录题目大意一、示意图二、解题思路队列 题目大意 在MATLAB中,有一个非常有用的函数 reshape,它可以将一个矩阵重塑为另一个大小不同的新矩阵,但保留其原始数据。 给出一个由二维数组表示的矩阵,以及两个正整数r和c,分别表示想要的重构的矩阵的行数和列数。 重构后的矩阵需要将原始矩阵的所有元素以相同的行遍历顺序填充。 如果具有给定参数的reshape操作是可行且合理的,则输出

wzw的博客 169

leetcode:566. 重塑矩阵(java实现)

class Solution { public int[][] matrixReshape(int[][] nums, int r, int c) { if (nums.length * nums[0].length != r * c) { return nums; } int tempnums[] = new int[r * c]; int k = 0; f...

Hello什么来着? 320

算法重塑矩阵

在MATLAB中,有一个非常有用的函数reshape,它可以将一个mxn矩阵重塑为另一个大小不同(rxc)的新矩阵,但保留其原始数据。 给你一个由二维数组mat表示的mxn矩阵,以及两个正整数r和c,分别表示想要的重构的矩阵的行数和列数。

silent702366的博客 243

LeetCode算法题-Reshape the Matrix(Java实现)

这是悦乐书的第264次更新,第277篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第131题(顺位题号是566)。在MATLAB中,有一个非常有用的函数叫做’reshape’,它可以将矩阵重新整形为一个不同大小的矩阵,但保留其原始数据。您将获得一个由二维数组表示的矩阵,以及两个正整数r和c,分别表示所需重新整形矩阵的行号和列号。重新形成的矩阵需要以相同的行遍历顺序填...

小川的博客 220

leetcode_566

package leetcode.array; import java.util.Arrays; /** * Created by w84108989 on 2019/2/19. */ //在MATLAB中,有一个非常有用的函数 reshape,它可以将一个矩阵重塑为另一个大小不同的新矩阵,但保留其原始数据。 // // 给出一个由二维数组表示的矩阵,以及两个正整数r和c,...

qq_24025155的博客 230

LeetCode 566.Reshape the Matrix

LeetCode 566.Reshape the MatrixDescription: In MATLAB, there is a very useful function called ‘reshape’, which can reshape a matrix into a new one with different size but keep its original data.

My Blog 238
上一篇: java数据结构与算法刷题-----LeetCode283. 移动零
下一篇: java数据结构与算法刷题-----LeetCode485. 最大连续 1 的个数
ydenergy_殷志鹏
博客等级 码龄7年 5887粉丝 543原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ydenergy_殷志鹏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值