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

(LeetCode 每日一题) 3446. 按对角线进行矩阵排序(矩阵、排序)

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

在这里插入图片描述
在这里插入图片描述

思路:矩阵+排序,时间复杂度0(n^2)。
每条对角线上的节点都符合 k=i-j+n ,而k的取值范围为((n-1)-0+n, 0-(n-1)+n)。

细节看注释

C++版本:

class Solution {
public:vector<vector<int>> sortMatrix(vector<vector<int>>& grid) {int n=grid.size();vector<vector<int>> ans(n,vector<int>(n,0));//确定k的取值范围// k=i-j+n -> k=(n-1)-0+n  k=0-(n-1)+n;for(int k=1;k<=2*n-1;k++){// j=i+n-k// 确定j的取值范围int mx=min(n-1,n-1+n-k);int mn=max(0,0+n-k);vector<int> v;for(int j=mn;j<=mx;j++){v.push_back(grid[k+j-n][j]);}//上半段都是升序(k<n),下半段都是降序(k>=n)if(k<n) sort(v.begin(),v.end());else sort(v.begin(),v.end(),greater());for(int j=mn;j<=mx;j++){ans[k+j-n][j]=v[j-mn];}}return ans;}
};

JAVA版本:

class Solution {public int[][] sortMatrix(int[][] grid) {int n=grid.length;int[][] ans=new int[n][n];// k=i-j+n -> k=(n-1)-0+n  k=0-(n-1)+n;for(int k=1;k<=2*n-1;k++){// j=i+n-kint mx=Math.min(n-1,n-1+n-k);int mn=Math.max(0,0+n-k);List<Integer> v=new ArrayList<Integer>();for(int j=mn;j<=mx;j++){v.add(grid[k+j-n][j]);}if(k<n) Collections.sort(v);else Collections.sort(v,Collections.reverseOrder());for(int j=mn;j<=mx;j++){ans[k+j-n][j]=v.get(j-mn);}}return ans;}
}

GO版本:

func sortMatrix(grid [][]int) [][]int {n:=len(grid)ans:=make([][]int,n)for i:=0;i<n;i++ {ans[i]=make([]int,n)}// k=i-j+n -> k=(n-1)-0+n  k=0-(n-1)+n;for k:=1;k<=2*n-1;k++ {// j=i+n-kmx:=min(n-1,n-1+n-k)mn:=max(0,0+n-k)v:=make([]int,0)for j:=mn;j<=mx;j++ {v=append(v,grid[k+j-n][j])}slices.Sort(v)if k<n {for j:=mn;j<=mx;j++ {ans[k+j-n][j]=v[j-mn]}}else{m:=len(v)for j:=mn;j<=mx;j++ {ans[k+j-n][j]=v[m-(j-mn)-1]}}}return ans
}
http://www.dtcms.com/a/354582.html

相关文章:

  • 读大语言模型08计算基础设施
  • GeoScene Maps 完整入门指南:从安装到实战
  • 《Explanation of Adaptive Platform Design》详细解读
  • 同一个栅格数据,为何在QGIS和ArcGIS Pro中打开后显示的数值范围不同?
  • redis单哨兵模式
  • 单元测试到底是什么?该怎么做?
  • 破译心智密码:神经科学如何为下一代自然语言处理绘制语义理解的蓝图
  • 【后端】微服务后端鉴权方案
  • 总结:在工作场景中的应用。(Excel)
  • UGUI源码剖析(13):交互的基石——Selectable状态机与Button事件
  • 【qml-7】qml与c++交互(自动补全提示)
  • mac m4执行nvm install 14.19.1报错,安装低版本node报错解决
  • 微服务保护和分布式事务-01.雪崩问题-原因分析
  • LeetCode-279. 完全平方数
  • 楼宇自控系统应需而生为现代建筑装上智能化翅膀
  • 【论文阅读】CLIP: 从自然语言监督中学习可迁移的视觉模型
  • 移动端网页调试实战,iOS WebKit Debug Proxy 的应用与替代方案
  • 《口令猜测研究进展》——论文阅读
  • springboot连接不上redis,但是redis客户端是能连接上的
  • ⸢ 贰 ⸥ ⤳ 安全架构:数字银行安全体系规划
  • iOS混淆工具实战,社交类 App 的隐私与安全防护混淆流程
  • 【C++详解】用哈希表封装实现myunordered_map和 myunordered_set
  • Redis 保证数据不丢失
  • 系统架构设计师备考第10天——网络技术-局域网以太网
  • [n8n] 全文检索(FTS)集成 | Mermaid图表生成
  • 基于django的梧桐山水智慧旅游平台设计与开发(代码+数据库+LW)
  • [p2p-Magnet] docs | HTTP API与Web界面 | 搜索查询引擎
  • OpenAI重组受阻:微软“锁链”与生态博弈
  • [p2p-Magnet] 数据模型(GORM) | DHT爬虫 | 分类器
  • 华为云OBS+HMS+EMRonEC2+HiveSparkFlink+GaussDB