【Leetcode 566】【Easy】重塑矩阵

news2024/11/24 20:44:18

目录

题目描述

整体思路

具体代码


题目描述:
 

原题链接

整体思路

首先要确保重塑后的矩阵内元素个数和原矩阵元素个数要相同,如果不同则原样返回原矩阵。

按行遍历顺序遍历原矩阵,设一个临时vector<int>存放新矩阵的每一行的元素,一边遍历一边判断临时vector的元素个数是否等于新矩阵每一行的元素个数,若相等,则说明新矩阵一行已完成,要读下一行,把临时vector元素清空同时新矩阵行数r要-1。若不相等,说明新矩阵的一行的元素还没读完,要继续往临时vector添加原矩阵元素。重复上述步骤知道新矩阵行数r=0。

具体代码

class Solution {
public:
    vector<vector<int>> matrixReshape(vector<vector<int>>& mat, int r, int c) {
        if(r*c!=mat.size()*mat[0].size()) return mat;
        vector<vector<int>> v;
        vector<int> v2;
        for(int i=0;i<=mat.size()-1;i++){
            for(int j=0;j<=mat[0].size()-1;j++){
                if(r==0) break;
                if(v2.size()==c){
                    v.push_back(v2);
                    v2=vector<int>();//清空临时矩阵
                    v2.push_back(mat[i][j]);//别忘了要往临时矩阵添加本次遍历到的原矩阵元素,弄,否则会漏
                    r--;
                }else{
                    v2.push_back(mat[i][j]);
                }
            }
        }
        if(v2.size()==c){//特殊情况是r=0但是临时vector还未存入新矩阵,特殊处理
            v.push_back(v2);
        }
        return v;
    }
};

 

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

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

相关文章

【抽代复习笔记】26-群(二十):子群的定义以及第一、第二判定定理

子群 定义1&#xff1a;(G,o)是一个群&#xff0c;H是G的非空子集&#xff0c;若H关于G的乘法o也能作成群&#xff08;满足群的判定定理&#xff1a;封闭性、结合律、单位元、逆元&#xff09;&#xff0c;则称H为G的子群&#xff0c;记作H ≤ G&#xff1b;若H是G的真子集&am…

致远OA同步组织架构到企业微信

致远OA同步组织架构到企业微信 可适配任何系统 背景 原有的微协同无法满足人员同步&#xff0c;因为在启用微协同的时候&#xff0c;企业微信已经存在人员&#xff0c;所以配置微协同之后&#xff0c;人员会出现新增而不会同步修改 方案 重写同步&#xff0c;针对已经存在…

单点登录(cookie+Redis)

1、什么是单点登录&#xff1f; Single Sign On简称SSo&#xff0c;只需要登录一次就可以在整个系统实现访问。 因为session的特性&#xff0c;是没有办法在多个服务系统之间实现数据的共享。 解决一个分布式session的问题。目前我们使用redis来实现分布式session。 1.1、新问题…

不同的llm推理框架

vLLM适用于大批量Prompt输入&#xff0c;并对推理速度要求比较高的场景。 实际应用场景中&#xff0c;TensorRT-LLM通常与Triton Inference Server结合起来使用&#xff0c;NVIDIA官方能够提供更适合NVIDIA GPU运行的高效Kernel。 LightLLM比较轻量、易于扩展、易于上手&…

实验九 存储过程和触发器

题目 创建并执行一个无参数的存储过程proc_product1&#xff0c;通过该存储过程可以查询商品类别名称为“笔记本电脑”的商品的详细信息&#xff1a;包括商品编号、商品名称、品牌、库存量、单价和上架时间信息 2、创建并执行一个带输入参数的存储过程proc_product2&#xff…

嵌入式实时操作系统:Intewell操作系统与VxWorks操作系统有啥区别

Intewell操作系统和VxWorks操作系统都是工业领域常用的操作系统&#xff0c;它们各有特点和优势。以下是它们之间的一些主要区别&#xff1a; 架构差异&#xff1a; Intewell操作系统采用微内核架构&#xff0c;这使得它具有高实时性、高安全性和强扩展性的特点。微内核架构…

力扣1685.有序数组中差绝对值之和

力扣1685.有序数组中差绝对值之和 记录左边之和 和 右边之和从左到右遍历每个元素 求res class Solution {public:vector<int> getSumAbsoluteDifferences(vector<int>& nums) {int n nums.size(),lsum 0,rsum accumulate(nums.begin(),nums.end(),0);ve…

Java-List集合堆内存溢出

Java-List集合堆内存溢出 情况一情况二对照分析对照规定堆内存 情况一 往List<Object>的集合中不断插入元素&#xff0c;集合底层的数组会不断扩容&#xff0c;从0 -> 10 -> 10 10>>1…。最终出现堆内存溢出&#xff0c;是在扩容数组大小的时候。这里的过程…

5款软件让电脑更方便,更快,更好看

​ 你有没有想过&#xff0c;有些软件能让你的电脑用起来更方便&#xff0c;更快&#xff0c;更好看&#xff1f; 1. 屏幕动画创作——Screen To Gif ​ Screen To Gif是一款功能强大的屏幕录制软件&#xff0c;专注于将屏幕上的动态内容转换为高质量的GIF动画。它不仅支持自…

眼动追踪技术 | 眼动的分类和模型

摘要 灵长类动物用于调整中央凹位置的正常眼动&#xff0c;几乎都可以归结为五种基本类型的组合&#xff1a;扫视、平稳追踪、聚散、前庭眼震和生理性眼震(与注视相关的微小运动)。聚散运动用于将双眼聚焦于远处的目标(深度知觉)。其他运动(如适应和聚焦)指的是眼动的非位置变…

生命在于学习——Python人工智能原理(3.2.2)

2.3 连续型随机变量 &#xff08;一&#xff09;定义 连续型随机变量即在一定区间内变量取值有无限个&#xff0c;或数值无法一一列举出来&#xff0c;例如某个地区男性健康成人的身高值、体重值。 如果对于随机变量X的分布函数F(X)&#xff0c;存在非负可积函数f(x)&#xf…

Okhttp hostnameVerifier详解

hostnameVerifier 方法简介核心原理参考资料 方法简介 本篇博文以Okhttp 4.6.0来解析hostnameVerfier的作用&#xff0c;顾名思义&#xff0c;该方法的主要作用就是鉴定hostnname的合法性。Okhttp在初始化的时候我们可以自己配置hostnameVerfier&#xff1a; new OkHttpClien…

ExtendSim在商业和服务行业中的仿真

仿真使企业能够做出明智的、数据驱动的预测&#xff0c;从而指导决策、产生积极成果并建立竞争优势。 精益分析 使用 ExtendSim 中的精益分析方法对欧洲的供应链网络进行建模&#xff0c;一家制造商实现了对最终客户的服务水平提高了 98%&#xff0c;而且现在可以在库存减少约 …

新手必学:TikTok视频标签的使用方法

想让你的TikTok视频火起来&#xff0c;就得用对标签。标签能帮你的作品被更多人看到&#xff0c;也更有利于推广&#xff0c;可以为品牌增加曝光度、吸引更多观众、提高转化率和借势热门话题。那么应该如何选择标签并使用标签呢&#xff0c;看完这篇分享你或许会有所启发&#…

dc-3靶机渗透

环境准备 dc-3靶机下载链接&#xff1a; https://download.vulnhub.com/dc/DC-3-2.zip 启动靶机遇到的问题解决文章在下面 http://t.csdnimg.cn/zLQAI kali最新版 dc-3靶机 两台机器都在vmware上运行 网络设置NAT模式 渗透过程 信息收集 首先使用ifconfig获取kali的IP地址 可…

【RflySim学习笔记】1.RflySim的绪论

目录 文章目录 目录1.RflySim 平台背景2.RflySim 平台特点3.RflySim 平台核心组件介绍3.1 CopterSim3.2 RflySim3D/RflySimUE5UE引擎&#xff1a;RflySim3D/RflySimUE5 3.3 QGroundControl地面站3.4 Python38Env3.5 MATLAB自动代码生成工具箱3.6 SITL/HITL批处理脚本3.7 PX4 Fi…

【已解决】: fatal error: cuda_runtime_api.h: No such file or directory

既然他找不到&#xff0c;我们就把路径给他写清楚&#xff01; 检查自己是不是有这个文件&#xff1a; 去路径/usr/local下&#xff0c;使用命令查询是否拥有该文件&#xff1a; find . -name cuda_runtime_api.h结果&#xff1a; 因为我要使用的是cuda-11.3&#xff0c;因…

Linux 摄像头编号固化

一、前言 在工业领域&#xff0c;一台设备会有很多个摄像头&#xff0c;可以使用命令&#xff1a;ll /dev/video* 进行查看&#xff1b; 在代码中&#xff0c;如果需要使用摄像头&#xff0c;那么都是需要具体到哪个摄像头编号的&#xff0c;例如 open("/dev/video4"…

Redis 五大数据类型底层原理

0、前言 本文涉及的主题&#xff1a; redis 对象存储 底层数据结构&#xff1a;int、embstr、raw、ziplist、listpack、quicklist、skiplist、intset、hashtable redis 数据类型&#xff1a;string、list、set、zset、hash 1、对象存储、底层编码、数据类型 1.1 对象存储…

SpringBoot实现多数据源切换快速入门

1. 概述 随着项目规模的扩大和业务需求的复杂化&#xff0c;单一数据源已经不能满足实际开发中的需求。在许多情况下&#xff0c;我们需要同时操作多个数据库&#xff0c;或者需要将不同类型的数据存储在不同的数据库中。这时&#xff0c;多数据源场景成为必不可少的解决方案。…