数据结构与算法之矩阵: LeetCode 1329. 将矩阵按对角线排序 (Ts版)

秋招每日一题T14——将矩阵按对角线排序 矩阵对角线 是一条从矩阵最上面行或者最左侧列中的某个元素开始的对角线,沿右下方向一直到矩阵末尾的元素。例如,矩阵 mat 有 6 行 3 列,从 mat[2][0] 开始的 矩阵对角线 将会经过 mat[2][0]、mat[3][1] 和 mat[4][2]。给你一个 m * n 的整数矩阵 mat ,请你将同一条 矩阵对角线 上的元素按升序排序后,返回排好序的矩阵。来源:力扣(LeetCode)... 阅读详情

将矩阵按对角线排序

描述

  • 矩阵对角线 是一条从矩阵最上面行或者最左侧列中的某个元素开始的对角线,沿右下方向一直到矩阵末尾的元素。例如,矩阵 mat 有 6 行 3 列,从 mat[2][0] 开始的 矩阵对角线 将会经过 mat[2][0]、mat[3][1] 和 mat[4][2]

  • 给你一个 m * n 的整数矩阵 mat ,请你将同一条 矩阵对角线 上的元素按升序排序后,返回排好序的矩阵

示例 1

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

示例 2

输入:mat = [[11,25,66,1,69,7],[23,55,17,45,15,52],[75,31,36,44,58,8],[22,27,33,25,68,4],[84,28,14,11,5,50]]
输出:[[5,17,4,1,52,7],[11,11,25,45,8,69],[14,23,25,44,58,15],[22,27,31,36,50,66],[84,28,75,33,55,68]]

提示

  • m == mat.length
  • n == mat[i].length
  • 1 <= m, n <= 100
  • 1 <= mat[i][j] <= 100

Typescript 版算法实现


1 ) 方案1:模拟

function diagonalSort(mat: number[][]): number[][] {
    const n: number = mat.length;
    const m: number = mat[0].length;
    const diag: number[][] = new Array(m + n).fill([]).map(() => [] as number[]);

    // 将矩阵中的每个元素放入对应的对角线数组中
    for (let i = 0; i < n; i++) {
        for (let j = 0; j < m; j++) {
            diag[i - j + m].push(mat[i][j]);
        }
    }

    // 对每个对角线数组进行排序(降序)
    diag.forEach(d => d.sort((a, b) => b - a));

    // 将排序后的元素放回原矩阵中
    for (let i = 0; i < n; i++) {
        for (let j = 0; j < m; j++) {
            mat[i][j] = diag[i - j + m].pop()!;
        }
    }

    return mat;
}

2 ) 方案2:优化版

function diagonalSort(mat: number[][]): number[][] {
    const m = mat.length;
    const n = mat[0].length;
    for (let k = 1 - n; k < m; k++) {
        // k = i - j
        const left_i = Math.max(k, 0);
        const right_i = Math.min(k + n, m);
        const a = [];
        for (let i = left_i; i < right_i; i++) {
            a.push(mat[i][i - k]);
        }
        a.sort((a, b) => a - b);
        for (let i = left_i; i < right_i; i++) {
            mat[i][i - k] = a[i - left_i];
        }
    }
    return mat;
};
矩阵对角线 阅读详情

相关推荐

第一章 矩阵

文章目录矩阵(Matrix)几种特殊的矩阵矩阵的运算(一) 矩阵(Matrix) 1、由mn个数按一定的次序排成的m行n列矩形数表称为mn的矩阵,简称矩阵。 建议:手写为圆括弧,印刷体为中括弧。 横的各排称为矩阵的行; 竖的各排称为矩阵的列; a[i,j]称为矩阵第i行j列的元素。 2、元素为实数的我们称为实矩阵,线性代数中我们只研究实矩阵。 3、矩阵通常用大写字母表示: 比如A、B、C。 简写:...

我想成长的快一点,再快一点... 1053

1329. 将矩阵按对角线排序

https://leetcode-cn.com/problems/sort-the-matrix-diagonally/ 难度中等51 矩阵对角线是一条从矩阵最上面行或者最左侧列中的某个元素开始的对角线,沿右下方向一直到矩阵末尾的元素。例如,矩阵mat有6行3列,从mat[2][0]开始的矩阵对角线将会经过mat[2][0]、mat[3][1]和mat[4][2]。 给你一个m * n的整数矩阵mat,请你将同一条矩阵对角线上的元素按升序排序后,返回排好序的矩...

肥不溜秋大梅子 657

稳健自适应波束形成学习(2):自适应计算对角加载量方法——基于广义线性组合的鲁棒Capon波束形成

对于快拍数相对阵元数较小时,样本协方差矩阵不能很好对协方差矩阵进行估计。常规的对角加载量需要根据经验值或不断手动调整进行测试,没有一个明确的准则和推导。该篇介绍一种自适应计算对角加载量的方法,且能适应快拍数相对阵元数较小时的情况。均匀线阵阵元数:18;载波频率30MHz;通信信号来波方向0°、来波估计偏差0.5°;干扰来波方向30°;通信信号信噪比10dB;干扰信号信噪比60dB。也即在干扰角度生成66dB的零陷,通信信号受到16dB的衰减。

a1uajug的博客 825

LeetCode题解(1329):将矩阵按对角线排序(Python)

题目:原题链接(中等) 标签:数组、排序 解法 时间复杂度 空间复杂度 执行用时 Ans 1 (Python) O(M×N×log(min(M,N)))O(M×N×log(min(M,N)))O(M×N×log(min(M,N))) O(min(M,N))O(min(M,N))O(min(M,N)) 44ms (97.99%) Ans 2 (Python) Ans 3 (Python) 解法一: class Solution: def diagonalSort

长行 810

读《认知科学导论》(萨伽德) 总结

1. 作者的写作思路 本书是建立在对心智的理解采用表征与计算的方式。对心智表征-计算的理解方式是与计算机的本质相联系。计算机本质上是一个符号系统,符号系统包含两个部分,一个是符号,另一个是建立在符号上的操作。对心智采用表征-计算的方式理解,很容易与计算机建立起类比关系。同时人们在探索人工智能领域采用表征-计算方式已经取得了无数辉煌的成就,故表征-计算式现在研究的主流方法。 本书的有两个部分组成

xiaoqiangXX的专栏 3450

千兆网口电路设计中的EMC防护与TVS选型实战

本文深入探讨了千兆网口电路设计中面临的EMC挑战,并提供了TVS二极管选型的实战指南。文章分析了ESD、浪涌和EFT等主要威胁,重点阐述了如何根据工作电压、钳位电压和关键的低结电容等参数为PHY芯片选择匹配的TVS器件,以确保在严苛电磁环境下实现可靠的信号完整性与防护。

m3n5b7v8c9x的博客 531

[LeetCode 1329]按矩阵对角线进行排序

二维数组的冒泡排?

Coder is on Mars的博客 387

KBS投稿全流程拆解:从模板准备到条件接收的实战指南

本文详细拆解了KBS期刊投稿的全流程,从模板准备、投稿系统操作到返修策略和条件接收。重点介绍了Cover Letter撰写技巧、Latex模板选择、审稿周期管理以及返修文件的系统准备方法,帮助研究者高效完成KBS投稿并提升接收概率。

weixin_26938645的博客 707

LeetCode - 1329 将矩阵按对角线排序【排序】

1329. 将矩阵按对角线排序 示例1 输入:mat = [[3,3,1,1],[2,2,1,2],[1,1,1,2]] 输出:[[1,1,1,1],[1,2,2,2],[1,2,3,3]] 示例2 输入:mat = [[11,25,66,1,69,7],[23,55,17,45,15,52],[75,31,36,44,58,8],[22,27,33,25,68,4],[84,28,14,11,5,50]] 输出:[[5,17,4,1,52,7],[11,11,25,45,8,69],[1.

MaseratiD的博客 476

comfyui中的k采样器报错Given groups=1, weight of size [320, 4, 3, 3], expected input[2, 8, 96, 54] to have 4

求助大佬!!!我运行comfyui的时候,k采样器变紫,同时报错显示:

M1226401728的博客 5181

SAP 货币类型和公司代码的货币设置

货币类型分为公司代码和集团货币,一般FI 10类型和集团货币 30,事务代码是8KEM; 设置货币类型的事务代码是OB22 在S/4 1809版本里编辑功能统合到事务代码FINSC_LEDGER 中了,这里集中了分类账和公司代码的设置; 设置多账簿的币种(会出现在BSEG和FAGLFLEXA表中) 汇率维护在TCURR表中,可通过BAPI_EXCHANGERATE_GETDETAIL函数获取。 CO货币的事务代码是成本控制范围货币:OKKP ,一般设置为货币码20和30; 另外, SCC4设置集团货币,

RichardYang2020的博客 1万+

[leetcode]1329. 将矩阵按对角线排序

class Solution { public: vector<vector<int>> diagonalSort(vector<vector<int>>& mat) { int m = mat.size(); int n = mat[0].size(); vector<vec...

qq_40691051的博客 502

有限元ABAQUS软件安装后管理员身份运行报错:Cannot connect to license server system...如何解决?

🏆本文收录于 《全栈Bug调优(实战版)》 专栏,该专栏专注于分享我在真实项目开发中遇到的各类疑难Bug及其深层成因,并系统提供高效、可复现的解决思路和实操方案。无论你是刚入行的新手开发者,还是拥有多年项目经验的资深工程师,本专栏都将为你提供一条系统化、高质量的问题排查与优化路径,助力你加速成长,攻克技术壁垒,迈向技术价值最大化与职业发展的更高峰🚀!

**My Coding Family** 2077

SCAUoj教材习题第六章

华南农业大学C语言oj教材习题第六章

callmeggyh的博客 1866

R语言使用rms包的psm函数拟合参数生存模型(parametric survival model)、并可视化列线图(诺模图、nomogram)

R语言使用rms包的psm函数拟合参数生存模型(parametric survival model)、并可视化列线图(诺模图、nomogram)

statistics+insight+vista+power 904

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

矩阵每一行升序排列c语言,设M是一个n*n的整数矩阵,其中每一行和每一列的元素都按升序排列,设计分治算法确定一个给定的整数x是否M...

满意答案运行后#包括中长苏木贝尔(长总和[] [],廉政克)/ /定义的苏木贝尔功能,求和的作用{ INT H,L;长,他= 0;(H = 0,H (L = 0,L (H ==(G-1))/ /最后一行是不计算(L ==(G-1))继续; / /最后一个计算(H == 1)/ /对角线不算数((H + L),==(G-1))继续; / /计算反对角线 BR />的printf(“ - %LD...

weixin_30290193的博客 1939

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

leetcode_2: 排序问题

378.有序矩阵中第K小的元素 题目描述: 给定一个 n x n 矩阵,其中每行和每列元素均按升序排序,找到矩阵中第k小的元素。 请注意,它是排序后的第k小元素,而不是第k个元素。 示例: matrix = [ [ 1, 5, 9], [10, 11, 13], [12, 13, 15] ], k = 8, 返回 13。 说明: 你可以假设 k 的值永远是有效的, 1 ≤ k ≤ n2 思...

陶将的博客 731

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

要求将一个nxn矩阵中的最大元素放在中心,4个角分别放4个最小的元素 (按从左到右、从上到下的顺序依次从小到大存放)。若有多个同一类元素,则优先选择行号小的,若行号相同则优先选择列号小的。

要求将一个nxn矩阵中的最大元素放在中心,4个角分别放4个最小的元素 (按从左到右、从上到下的顺序依次从小到大存放)。若有多个同一类元素,则优先选择行号小的,若行号相同则优先选择列号小的

u012827406的博客 1244

LeetCode1329.将矩阵对角线排序

是一条从矩阵最上面行或者最左侧列中的某个元素开始的对角线,沿右下方向一直到矩阵末尾的元素。巧妙之处在于对角线的映射,利用对于不同的对角线映射在i-j+m上非常巧妙。上的元素按升序排序后,返回排好序的矩阵。

eihh23333的博客 217

找出NxN矩阵每列元素的最大值,并按顺序依次存放于形参b所指的一维数组中

#include<stdio.h> #define N 4 void fun(int (*a)[N],int *b); int main() { int x[N][N]={{12,5,8,7},{6,1,9,3},{1,2,3,4},{2,8,4,3}}; int y[N],i,j; printf("the matrix:\n"); for(i=0;i<N;i++) { for(j=0;j<N;j++) printf("%4d",x[

weixin_45721340的博客 1596

牛客网题目:给定一个 n x n 矩阵,其中每行和每列元素均按升序排序,找到矩阵中第k小的元素。 请注意,它是排序后的第k小元素,而不是第k个元素

题目:给定一个 n x n 矩阵,其中每行和每列元素均按升序排序,找到矩阵中第k小的元素。 请注意,它是排序后的第k小元素,而不是第k个元素 以下属于自己调试总结,若有不同,乐意听从,借鉴 int main() { // 由于数组的定义时的下表不能为变量,所以牛客网中,若要求必须要求输入下表时,可用scanf输入, //也可直接在定义数组时,赋予初始常量值,系统会自动进行替换鉴别 //但其它地方要用到下表值,可在定义变量并给初始化值,也可手动直接给值,例如这道题 int n=5,i,j,k,temp; sc

weixin_45479045的博客 3241

PTA数组2

1. 方阵对角线元素求和及计数 对输入的一个N*N的方阵,求其两条对角线上的元素之和及非零元素的数量 第一行输入一个不超过20的正整数N, 在接下来的N行中,依次输入方阵的每一行的N个元素,方阵元素为绝对值不超过1000的整数,中间以空格间隔。 #include <stdio.h> #include <stdlib.h> int main() { int num,a[20][20],cout=0,sum=0,i,j; scanf("%d",&num); for(

m0_61548909的博客 1605

线性代数一些基础概念

Math 线性代数知识点 行列式 对角线法则 正撇负捺 下/上三角行列式 (副)对角行列式 性质: 转置:行变列,列变行 互换行列式的两行/列,行列式变号 推论: 两行/列相同的行列式值为0 行列式的某一行/列中的所有元素都乘 k,等于k乘此行列式 推论: 行列式中某一行/列的公因子可提到行列式外 行列式中如果有两行/列元素成比例,则行列式=0 行列式的某一列/行的元素是两个元素和,则该行列式=两个行列式相加 把行列式的某行/列的各元素同一倍数后

weixin_49270402的博客 2347

力扣1329. 将矩阵按对角线排序

简单的打卡题呢,但是也有坑,对于 对角线元素的处理还是有点技巧的,完结撒花❀。

2302_79345462的博客 578

[数据结构]-08矩阵

文章目录矩阵是什么矩阵的压缩存储对角矩阵的压缩存储三角矩阵的压缩存储对称矩阵的压缩存储应用实例 矩阵是一种常见的数据组织方式,程序设计者通常更关心矩阵的存储和矩阵基本操作的实现 矩阵是什么 什么是矩阵? 由 m∗nm * nm∗n 个元素排成的 mmm 行 nnn 列的表称为矩阵,其表现形式如下: (a11a12a13⋯a1na21a22a23⋯a2n⋮⋮⋱⋱⋮am1am2am2⋯amn)...

qq_39953750的博客 455

LeetCode- 1329.将矩阵按对角线排序

/** 1329.将矩阵按对角线排序 * @author 作者 Your-Name: * @version 创建时间:2020年2月20日 上午9:29:03 * 给你一个 m * n 的整数矩阵 mat ,请你将同一条对角线上的元素(从左上到右下)按升序排序后,返回排好序的矩阵。 示例 1: 输入:mat = [[3,3,1,1],[2,2,1,2],[1,1,1,2]] 输出:...

l769440473的博客 500
上一篇: 数据结构与算法之动态规划: LeetCode 1494. 并行课程 II (Ts版)
下一篇: 数据结构与算法之栈: LeetCode 641. 设计循环双端队列 (Ts版)
Wang's Blog
博客等级 码龄12年 7433粉丝 2421原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

Wang's Blog

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

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

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

打赏作者

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

抵扣说明:

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

余额充值