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

java数据结构与算法刷题目录(剑指Offer、LeetCode、ACM)-----主目录-----持续更新(进不去说明我没写完):https://blog.csdn.net/grd_java/article/details/123063846

文章目录

    • 1. 法一,下标填充
    • 2. 法二:数学除法和取余

在这里插入图片描述

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;}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/636365.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MFC 序列化机制

目录 文件操作相关类 序列化机制相关类 序列化机制使用 序列化机制执行过程 序列化类对象 文件操作相关类 CFile&#xff1a;文件操作类&#xff0c;封装了关于文件读写等操作&#xff0c;常见的方法&#xff1a; CFile::Open&#xff1a;打开或者创建文件CFile::Write/…

Mongo集群入门

一、前言 MongoDB 有三种集群架构模式&#xff0c;分别为主从复制&#xff08;Master-Slaver&#xff09;、副本集&#xff08;Replica Set&#xff09;和分片&#xff08;Sharding&#xff09;模式。 Master-Slaver 是一种主从复制的模式&#xff0c;目前已经不推荐使用。 Re…

大模型:我也会自监督学习~

前言 当下大模型的能力已经很强了&#xff0c;但是将来我们想要的是能力更强的大模型&#xff0c;其最好能够处理各种复杂问题也即强对齐模型。 之前大模型训练的监督信号主要来源于人类反馈&#xff0c;但是如果想要训练一个强对齐模型必然就需要一个对应的强监督信号&#…

WebDriverWait太强大

selenium webdriver及wait 1 implicitly包打天下2 Linkedin无法登录返回值很乱&#xff0c;怎么破&#xff1f; 1 implicitly包打天下 有了implicitly之后&#xff0c;基本上不再关注网速之类的影响。 self.driver.implicitly_wait(511)2 Linkedin无法登录返回值很乱&#xf…

探索图像检索:从理论到实战的应用

目录 一、引言二、图像检索技术概述图像检索的基本概念图像检索与文本检索的区别特征提取技术相似度计算索引技术 三、图像检索技术代码示例图像特征提取示例相似度计算索引技术 四、图像搜索流程架构数据采集与预处理特征提取相似度计算与排名结果呈现与优化 五、实际应用图像…

【征服redis11】花了一天,我终于懂了redis的底层数据结构

现在我们可以开始讨论一个硬核问题了—Redis的数据结构。在redis里常见的数据类型有String、Hash、Set、List、Zset五种常用结构&#xff0c;另外还有Hyperloglog、Geo、Streams等结构。这些结构的特征和应用场景我们在前面都介绍过&#xff0c;这里我们来研究一下其内部结构是…

【分布式技术】ELK大型日志收集分析系统

目录 步骤一&#xff1a;完成JAVA环境部署 步骤二&#xff1a;部署ES节点&#xff08;三台主机&#xff09; 步骤三&#xff1a;内核参数修改 步骤四&#xff1a;web端查看验证 步骤五&#xff1a;yum安装nginx 步骤六&#xff1a;完成logstash部署 步骤七&#xff1a;部…

荣誉艾尔迪亚人的题解

目录 原题描述&#xff1a; 题目背景 题目描述 输入格式 输出格式 样例 Input 1 Output 1 Input 2 Output 2 数据范围&#xff1a; 样例解释 主要思路&#xff1a; 代码code&#xff1a; 原题描述&#xff1a; 时间限制: 1000ms 空间限制: 65536kb 题目背景 ​…

Python爬虫时被封IP,该怎么解决?四大动态IP平台测评

在使用 Python 进行爬虫时&#xff0c;很有可能因为一些异常行为被封 IP&#xff0c;这主要是因为一些爬虫时产生的异常行为导致的。 在曾经的一次数据爬取的时候&#xff0c;我尝试去爬取Google地图上面的商家联系方式和地址信息做营销&#xff0c;可是很不幸&#xff0c;还只…

从规则到神经网络:机器翻译技术的演化之路

文章目录 从规则到神经网络&#xff1a;机器翻译技术的演化之路一、概述1. 机器翻译的历史与发展2. 神经机器翻译的兴起3. 技术对现代社会的影响 二、机器翻译的核心技术1. 规则基础的机器翻译&#xff08;Rule-Based Machine Translation, RBMT&#xff09;2. 统计机器翻译&am…

【内存管理】flink内存管理(一):内存管理概述:flink主动管理内存原理、flink内存模型

文章目录 一.flink为什么自己管理内存1. 处理大数据时JVM内存管理的问题2. flink主动管理内存逻辑2.1. Flink内存管理方面2.2. 序列化、反序列化说明 3. Flink主动管理内存的好处 二. Flink内存模型1. 堆内存2. 非堆内存2.1. 托管内存2.2.直接内存2.3. JVM特定内存 本节从整体使…

Nginx重写功能location与rewrite

1. location 从功能看 rewrite 和 location 似乎有点像&#xff0c;都能实现跳转&#xff0c;主要区别在于 rewrite 是在同一域名内更改获取资源的路径&#xff0c;而 location 是对一类路径做控制访问或反向代理&#xff0c;还可以proxy_pass 到其他机器。 rewrite 对访问的…

书生·浦语大模型实战营-学习笔记4

XTuner 大模型单卡低成本微调实战 Finetune简介 常见的两种微调策略&#xff1a;增量预训练、指令跟随 指令跟随微调 数据是一问一答的形式 对话模板构建 每个开源模型使用的对话模板都不相同 指令微调原理&#xff1a; 由于只有答案部分是我们期望模型来进行回答的内容…

蓝桥杯-最少刷题数

&#x1f4d1;前言 本文主要是【算法】——最少刷题数的文章&#xff0c;如果有什么需要改进的地方还请大佬指出⛺️ &#x1f3ac;作者简介&#xff1a;大家好&#xff0c;我是听风与他&#x1f947; ☁️博客首页&#xff1a;CSDN主页听风与他 &#x1f304;每日一句&#x…

一文搞清楚Java中的包、类、接口

写在开头 包、类、接口、方法、变量、参数、代码块&#xff0c;这些都是构成Java程序的核心部分&#xff0c;即便最简单的一段代码里都至少要包含里面的三四个内容&#xff0c;这两天花点时间梳理了一下&#xff0c;理解又深刻了几分。 Java中的包 Java 定义了一种名字空间&…

接口测试 02 -- JMeter入门到实战

前言 JM eter毕竟是做压测的工具&#xff0c;自动化这块还是有缺陷。 如果公司做一些简单的接口自动化&#xff0c;可以考虑使用JMeter快速完成&#xff0c;如果想做完善的接口自动化体系&#xff0c;建议还是基于Python来做。 为什么学习接口测试要先从JMeter开始&#xff1f;…

卡尔曼滤波增益推导

该文章主要是记录温习卡尔曼滤波算法理论时的一些理解&#xff0c;重点讲解卡尔曼增益的推导过程。其中忽略了部分基础知识和详细的推导过程&#xff0c;阅读该文章需要本身已具备卡尔曼滤波基础。文章内容摘取自网络博客的部分内容&#xff0c;因为原文章的逻辑不是很通顺&…

NLP论文阅读记录 - 2021 | WOS 基于多头自注意力机制和指针网络的文本摘要

文章目录 前言0、论文摘要一、Introduction1.1目标问题1.2相关的尝试1.3本文贡献 二.问题定义和解决问题的假设问题定义解决问题的假设 三.本文方法3.1 总结为两阶段学习3.1.1 基础系统 3.2 重构文本摘要 四 实验效果4.1数据集4.2 对比模型4.3实施细节4.4评估指标4.5 实验结果4…

python222网站实战(SpringBoot+SpringSecurity+MybatisPlus+thymeleaf+layui)-帖子详情页实现

锋哥原创的SpringbootLayui python222网站实战&#xff1a; python222网站实战课程视频教程&#xff08;SpringBootPython爬虫实战&#xff09; ( 火爆连载更新中... )_哔哩哔哩_bilibilipython222网站实战课程视频教程&#xff08;SpringBootPython爬虫实战&#xff09; ( 火…

解决一个mysql的更新属性长度问题

需求背景&#xff1a; 线上有一个 platform属性&#xff0c;原有长度为 varchar(10)&#xff0c;但是突然需要填入一个11位长度的值&#xff1b;而偏偏这个属性在线上100张表中有50张都存在&#xff0c;并且名字各式各样&#xff0c;庆幸都包含 platform&#xff1b;例如 platf…