当前位置: 首页 > news >正文

3446. 按对角线进行矩阵排序

Problem: 3446. 按对角线进行矩阵排序

文章目录

  • 思路
  • 解题过程
  • 复杂度
  • Code

思路

发现每条对角线行号减列号是一个定值。
k=i-j+n,i=0,j=n-1时,k=1;i=m-1,j=0时,k=m+n-1。

解题过程

遍历对角线,找出最小和最大列,如果最小列大于零说明在矩阵右上角,升序排序,反之逆序排序。

复杂度

  • 时间复杂度: O(n2logn)O(n^2logn)O(n2logn)
  • 空间复杂度: O(n)O(n)O(n)

Code

class Solution {
public:vector<vector<int>> sortMatrix(vector<vector<int>>& grid) {int m = grid.size(), n = grid[0].size();for (int k = 1; k < m + n; k++) {int minj = max(n - k, 0);int maxj = min(m + n - 1 - k, n - 1);vector<int> temp;for (int j = minj; j <= maxj; j++) {temp.push_back(grid[k + j - n][j]);}if (minj > 0) {ranges::sort(temp);} else {ranges::sort(temp, greater<int>());}for (int j = minj; j <= maxj; j++) {grid[k + j - n][j] = temp[j - minj];}}return grid;}
};
http://www.xdnf.cn/news/1383733.html

相关文章:

  • [数组]27.移除元素
  • Kafka02-集群选主
  • 【Node.js从 0 到 1:入门实战与项目驱动】2.4 开发工具推荐(VS Code 、IDEA及插件、终端工具、调试工具)
  • 配置 Gitlab 和 Elasticsearch/Zoekt 并使用 Docker Metadata 数据库、Camo 代理服务
  • AI 如何 “看见” 世界?计算机视觉(CV)的核心技术:图像识别、目标检测与语义分割
  • Day16_【机器学习常见术语】
  • 宋红康 JVM 笔记 Day08|堆
  • MySQL 中 tinyint(1)、int(11)、bigint(20) 的数字到底是什么意思?
  • Vibe Coding 概念提出者 AndrejKarpathy 谈强化学习。
  • 在jdk8的spring-boot-2.7.x项目中集成logback-1.3.x
  • 通过代码认识 CNN:用 PyTorch 实现卷积神经网络识别手写数字
  • Maven 项目单元测试实战指南:从环境搭建到问题排查全解析
  • 使用astah制作专业状态图及C/C++实现解析
  • Docker 详解+示例
  • 进程组 会话 作业控制 守护进程
  • 【Canvas与盾牌】“靡不有初,鲜克有终”黄竖条盾牌
  • Redis 哨兵(Sentinel)全面解析
  • 海康相机开发---设备登录
  • Subdev与Media子系统的数据结构
  • redis单哨兵模式
  • 把 AI 塞进「智能水杯」——基于声学指纹的零样本水质检测杯
  • open webui源码分析11-四个特征之记忆
  • GD32VW553-IOT OLED移植
  • Intern-S1-mini模型结构
  • Python训练营打卡 DAY 50 预训练模型+CBAM模块
  • DQN(深度Q网络):深度强化学习的里程碑式突破
  • 【LeetCode每日一题】160.相交链表 206. 反转链表
  • 在Xcode中查看设备日志的完整指南
  • 消息队列核心问题解决方案:从丢失到重复消费的全方位保障
  • Windows 11 中 PowerShell 与 CMD 的深度对比:从定位到实战