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

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


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

代码如下:

cpp 复制代码
class Solution {
public:
	vector<vector<int>> sortMatrix(vector<vector<int>>& grid) {
		int m = grid.size(), n = grid[0].size();
		//第一排在右上,最后一排在右下
		//每排从左上到右下
		//令k=i-j+n,那么右上角k=1,左下角k=m+n-1
		for (int k = 1;k < m + n;k++) {
			//核心:计算j的最大值和最小值
			int min_j = max(n - k, 0);//i=0的时候,j=n-k,但不能是负数
			int max_j = min(m + n - 1 - k, n - 1);//i=m-1的时候,j=m+n-1-k,但不能超过n-1
			vector<int> a;
			for (int j = min_j;j <= max_j;j++) {
				a.push_back(grid[k + j - n][j]);//根据k的
			}
			if (min_j > 0) {
				ranges::sort(a);
			}
			else {
				ranges::sort(a, greater<int>());
			}
			for (int j = min_j;j <= max_j;j++) {
				grid[k + j - n][j] = a[j - min_j];
			}
		}
		return grid;
	}
};
相关推荐
lcj25115 分钟前
字符函数,字符串函数,内存函数
c语言·开发语言·c++·windows
吃着火锅x唱着歌10 分钟前
深度探索C++对象模型 学习笔记 第三章 Data语意学(2)
c++·笔记·学习
Imxyk12 分钟前
P9242 [蓝桥杯 2023 省 B] 接龙数列
c++·算法·图论
郝学胜-神的一滴16 分钟前
二叉树后序遍历:从递归到非递归的优雅实现
数据结构·c++·程序人生·算法·
亚马逊云开发者17 分钟前
GameLift Servers DDoS防护实战:Player Gateway + Ping Beacons延迟优化 + C++ SDK集成
c++·gateway·ddos
念恒123063 小时前
继承(下) (Inheritance)
c++
H Journey4 小时前
C++之 CMake、CMakeLists.txt、Makefile
开发语言·c++·makefile·cmake
研究点啥好呢9 小时前
Github热门项目推荐 | 创建你的像素风格!
c++·python·node.js·github·开源软件
_dindong9 小时前
cf1091div2 C.Grid Covering(数论)
c++·算法
沫璃染墨9 小时前
C++ string 从入门到精通:构造、迭代器、容量接口全解析
c语言·开发语言·c++