LeetCode 每日一题 ---- 【1329.将矩阵按对角线排序】

ops/2024/9/25 3:20:27/

LeetCode 每日一题 ---- 【1329.将矩阵按对角线排序】

  • 1329.将矩阵按对角线排序
    • 方法:模拟

leetcode.cn/problems/sort-the-matrix-diagonally/description/" rel="nofollow">1329.将矩阵按对角线排序

方法:模拟

按每个对角线遍历,将得到的值放入数组中,然后对数组排序,再将数组中的元素再放回去就可以了。

需要注意的一个点是:
i - j + m,可以唯一的确定一条对角线,这样处理起来会方便很多

class Solution {public int[][] diagonalSort(int[][] mat) {int n = mat.length, m = mat[0].length;List<List<Integer>> list = new ArrayList<>(m + n);for (int i = 0; i < m + n; i ++ ) {list.add(new ArrayList<>());}for (int i = 0; i < n; i ++ ) {for (int j = 0; j < m; j ++ ) {list.get(i - j + m).add(mat[i][j]);}}for (List<Integer> d : list) {Collections.sort(d, Collections.reverseOrder());}for (int i = 0; i < n; i ++ ) {for (int j = 0; j < m; j ++ ) {mat[i][j] = list.get(i - j + m).removeLast();}}return mat;}
}
/*
i - j + m 唯一的确定了矩阵的对角线(i - j), + m 实际上是为了防止边界的溢出
00 01 02 03
10 11 12 13
20 21 22 23
*/

时间复杂度:
O( nmlog(min(n,m)) )
n,m 是矩阵的长和宽,矩阵对角线的最大长度是 min(n, m)

空间复杂度:
O(nm)


http://www.ppmy.cn/ops/25171.html

相关文章

【CSS】grid 布局一行自动填充,每行最大限定px

<div class"model-plat-content"><div class"mode-card" v-for"i in 30"></div></div>.model-plat-content {display: grid;// 解释&#xff1a; repeat(auto-fit, minmax(250px, 1fr)) 自动填充&#xff0c;每行最大25…

PostCss 概述

PostCSS 是一个用于处理和转换 CSS&#xff08;层叠样式表&#xff09;代码的强大工具。它利用 JavaScript 编写的插件系统来实现对原始 CSS 文本的解析、分析、优化及再生成&#xff0c;从而为开发者提供了广泛的定制化功能和自动化工作流。以下是 PostCSS 的核心概念与主要特…

高速应急广播校园网络广播防水音柱40-80W应急广播ip音柱

高速应急广播校园网络广播防水音柱40-80W应急广播ip音柱 SV-7042是一款网络音柱&#xff0c;具有10/100M以太网接口&#xff0c;从网络接口接收网络的音频数据解码后播放。 本网络音柱一般内置4个喇叭&#xff0c;提供立体声的音频播放。本网络音柱可直接播放来自网络的音频&…

3D看车有哪些强大的功能?适合哪些企业使用?

3D看车是一种创新的汽车展示方式&#xff0c;它提供了许多强大的功能&#xff0c;特别适合汽车行业的企业使用。 3D看车可实现哪些功能&#xff1f; 1、细节展示&#xff1a; 51建模网提供全套汽车行业3D数字化解决方案&#xff0c;3D看车能够将汽车展示得更加栩栩如生&…

Spring中实现策略模式的几种方式

Spring中实现策略模式的几种方式 一.背景 在写业务代码的时候&#xff0c;难免会遇到很多if-else&#xff0c;这个时候如果if-else不是很多可以用if-else。如果此时场景过多&#xff0c;太多的if-else会导致代码比较臃肿&#xff0c;所以这个时候就需要抽象化&#xff0c;将每…

开发文档、PHP身份核验接口,三要素实名认证接口

在这个数字时代&#xff0c;每一步的安全都至关重要。想象一下&#xff0c;一个简单、高效又安全的解决方案&#xff0c;让您的业务与客户之间建立起坚不可摧的信任桥梁&#xff0c;那便是翔云身份证三要素实名认证接口。 翔云身份证实名认证接口&#xff0c;实时联网&#xf…

流程控制语句

06、特殊的循环控制语句 **break&#xff1a;**作用于循环&#xff0c;表示跳出整个循环 案例&#xff1a;循环录入麻生希同学5门课的成绩并计算平均分&#xff0c;如果某分数录入为负&#xff0c;停止录入并提示。 **continue&#xff1a;**作用于循环&#xff0c;表示跳过…

优化SQL的方法

来自组内分享&#xff0c;包含了比较常使用到的八点&#xff1a; 避免使用select * union all代替union 小表驱动大表 批量操作 善用limit 高效的分页 用连接查询代替子查询 控制索引数量 一、避免使用select * 消耗数据库资源 消耗更多的数据库服务器内存、CPU等资源。 消…