2023.2.15每日一题——867. 转置矩阵

news2024/9/29 18:49:19

每日一题

  • 题目描述
  • 解题核心
    • 解法一:二维表示 + 模拟
    • 解法二:一维表示 + 模拟

题目描述

题目链接:867. 转置矩阵

给你一个二维整数数组 matrix, 返回 matrix 的 转置矩阵 。

矩阵的 转置 是指将矩阵的主对角线翻转,交换矩阵的行索引与列索引。
在这里插入图片描述

示例 1
输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]
输出:[[1,4,7],[2,5,8],[3,6,9]]

示例 2
输入:matrix = [[1,2,3],[4,5,6]]
输出:[[1,4],[2,5],[3,6]]

提示

  • m==matrix.length
  • n==matrix[i].length
  • 1 <=m, n<= 1000
  • 1 <=m * n<= 105
  • -109 <=matrix[i][j]<= 109

解题核心

因为题目里面没有讲一定是方阵,所有原地修改应该是做不到的,需要新建一个转置长度的数组

解法一:二维表示 + 模拟

直接暴力遍历赋值

public int[][] transpose1(int[][] matrix) {
    int row = matrix.length;//行数
    int col = matrix[0].length;//列数
    int[][] ans = new int[col][row];
    for (int i = 0; i < row; i++) {
        for (int j = 0; j < col; j++) {
            ans[j][i] = matrix[i][j];
        }
    }
    return ans;
}

解法二:一维表示 + 模拟

对于一个行数为row,列数为col的二维矩阵转换为一维矩阵表示,其索引值具有一定的映射关系:[i,j] -> [i * row + j],这是线性代数的数学性质,对于任意索引都成立,不会因为从0开始而失效

public int[][] transpose2(int[][] matrix) {
    int row = matrix.length;//行数
    int col = matrix[0].length;//列数
    int[][] ans = new int[col][row];
    for (int i = 0; i < row * col; i++) {
        ans[i / row][i % row] = matrix[i % row][i / row];
    }
    return ans;
}

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

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

相关文章

牛客教你用雇主品牌力抢人才!附6类校招玩法

最新校招数据显示&#xff0c;79%的应届生在Offer抉择时首要考量薪资福利。但谈钱多伤感情啊~牛客从100案例中挑出6种最潮的校招雇主品牌玩法&#xff0c;助力你抢人才。01、英特尔中国&#xff1a;“芯”动小镇雇主是否能让自己产生激情和热情&#xff0c;已经成为应届生选择O…

Sharding-jdbc读写分离

一、binlog日志查看是否开启binlog日志 show variables like log_%;注意&#xff1a;直接打开mysql-bin是乱码&#xff1b;修改my.ini配置binlog-row-imageFULLcharacter-set-serverutf8mb4default-character-setutf8mb4转成log打开首先需要切换到存放mysqlbinlog.exe应用程序的…

IDEA中使用tomcat8-maven-plugin插件

第一种方式 pom.xml <?xml version"1.0" encoding"UTF-8"?><project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.or…

android 混淆后的异常信息 工具处理

我们可以利用SDK中tools下的proguardgui.bat工具和混淆对应文档进行反混淆处理 D:\Android\sdk\tools\proguard\bin\proguardgui.bat 工具在SDK中的位置&#xff0c;有的SDK版本不同这个工具的具体位置可能有改变&#xff0c;也可以在tools中直接搜索proguardgui.bat&#x…

Netty 入门

文章目录一、概述1.1 Netty 是什么&#xff1f;1.2 Netty 的地位1.3 Netty 的优势二、Hello World2.1 目标2.2 服务器端2.3 客户端2.4 流程梳理三、组件3.1 EventLoop3.2 演示 NioEventLoop 处理 io 事件3.3 演示 NioEventLoop 处理普通任务3.4 演示 NioEventLoop 处理定时任务…

ThingsBoard-规则链-check existence fields

1、概述 今天我主要讲解【check existence fields】规则节点,顾名思义,这个节点就是检测字段是否存在。 可以检查规则节点消息(msg)和元数据(metadata)的字段。 2、节点理解 2.1、概述 【check existence fields】节点如图所示: 名称:你需要给这个节点命名。 Mes…

spring security简单教程以及实现完全前后端分离

简单教程spring security是spring家族的一个安全框架&#xff0c;入门简单。对比shiro&#xff0c;它自带登录页面&#xff0c;自动完成登录操作。权限过滤时支持http方法过滤。在新手入门使用时&#xff0c;只需要简单的配置&#xff0c;即可实现登录以及权限的管理&#xff0…

微服务 分布式搜索引擎 Elastic Search 索引库与文档操作

文章目录⛄引言一、Elastic Search 索引库⛅mapping 映射属性二、索引库的 CRUD &#xff08;增删改查&#xff09;⏰索引库的创建和映射⚡对索引库进行查询、修改、删除操作四、Elastic Search 文档操作⌚新增、查询、删除文档⚡修改Elastic Search 文档⛵小结⛄引言 本文参考…

C++——类和对象2

目录 类的六个默认成员函数 1. 构造函数 1.1 特性 1.2 实现 1.3 默认构造函数 1.4 默认构造函数处理行为 1.5 初始化列表 1.6 explicit关键字 2. 析构函数 2.1 特性 2.2 实现 2.3 默认析构函数 2.4 对象析构的顺序 3. 拷贝构造函数 3.1 特性 3.2 拷贝构造的…

JVM_内存区域与内存溢出异常

文章目录一、运行时数据区域1、程序计数器2、Java虚拟机栈3、本地方法栈4、Java堆5、方法区6、运行时常量池7、直接内存二、HotSpot虚拟机对象1、对象的创建2、对象的内存布局3、对象的访问定位三、OutOfMemoryError和StackOverflowError异常1、Java堆溢出&#xff08;最常见&a…

闭包可能导致的内存泄漏

什么是闭包 闭包是函数可以保留和访问其外部变量&#xff0c;比如 let a 1 let b function() {console.log(a) }这里变量b指向的函数可以访问外面的变量&#xff0c;你会说这不是废话吗&#xff1f;函数都可以访问外部变量呀 那再看一个例子 function f() {let value 123…

人人都能看懂的Spring源码解析,配置解析与BeanDefinition加载注册

人人都能看懂的Spring源码解析&#xff0c;扫描加载BeanDefinition的过程原理解析什么是BeanDefinition&#xff1f;两种配置方式扫描并读取配置信息&#xff0c;解析成BeanDefinition保存BeanDefinition源码走读xml配置方式整体流程示例代码BeanDefinition加载解析的入口创建X…

机器学习基础

一、基本概念 1 学习的概念 1975年图灵奖获得者、1978年诺贝尔经济学奖获得者、著名学者赫伯特.西蒙 (Herbert Simon) 曾下过一个定义: 如果一个系统&#xff0c;能够通过执行某个过程&#xff0c;就此改进了它的性能&#xff0c;那么这个过程就是学习.由此可看出&#xff0c;…

思科基础组面试(部分)

面了三轮&#xff0c;前面两轮因为录的视频坏了&#xff0c;很多问题忘了。 Round 1 Q:举例说明为什么hashmap线程不安全 A1: JDK1.8 HashMap线程不安全体现在&#xff1a;数据覆盖: 其中第六行代码是判断是否出现hash碰撞&#xff0c;假设两个线程A、B都在进行put操作&#…

软件测试未来发展趋势怎么样

未来&#xff0c;互联网技术是很多企业能够活下去的关键点。互联网技术成为新的基建&#xff0c;互联网“基建”化就决定了软件测试行业的缺口会一直扩大。 并且&#xff0c;软件测试岗位&#xff0c;已不仅局限于互联网企业&#xff0c;现已逐步深入到实体产业&#xff0c;金…

【安全等保】安全等保二级和三级哪个高?哪个费用更高?

等保政策已经严格落地执行了&#xff0c;各大企业纷纷接到了过等保的通知&#xff0c;但有的估计是第一次听到等保&#xff0c;对于等保相关政策都是非常蒙圈的。这不不少企业相关负责人在问&#xff0c;安全等保二级和三级哪个高&#xff1f;哪个费用更高&#xff1f;这里我们…

分布式文件系统使用——MinIO

分布式文件系统使用——MinIO 1 分布式文件系统 1.1 概念 常见的文件系统&#xff1a;FAT16/FAT32、NTFS、HFS、UFS、APFS、XFS、Ext4等 。 现在有个问题&#xff0c;一此短视频平台拥有大量的视频、图片&#xff0c;这些视频文件、图片文件该如何存储呢&#xff1f;如何存储…

04- 根据Xgboost集成算法预测还贷能力 (项目四)

筛选最佳参数: # 对于max_depth和min_child_weight查找最好的参数 param_grid { max_depth:range(3,10,2),min_child_weight:range(1,6,2)}model XGBClassifier(learning_rate 0.1,n_estimators100,max_depth5,use_label_encoderFalse,min_child_weight1,gamma0,subsample0…

状态管理VueX

哈喽~大家好&#xff0c;这篇来看看状态管理VueX。 &#x1f947;个人主页&#xff1a;个人主页​​​​​ &#x1f948; 系列专栏&#xff1a;【专栏】 &#x1f949;与这篇相关的文章&#xff1a; SpringCloud Sentinel 使用SpringClou…

java整数转罗马数字

罗马数字包含以下七种字符&#xff1a; I&#xff0c; V&#xff0c; X&#xff0c; L&#xff0c;C&#xff0c;D 和 M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如&#xff0c; 罗马数字 2 写做 II &#xff0c;即为两个并列的 1。12 写做 XII &#xff0c;即为…