leetcode1329--将矩阵按对角线排序

1. 题意

对角线排序

2. 题解

2.1 直接模拟

跟螺旋输出数组实际上有点像,这里需要枚举对角线数组的起始值。

cpp 复制代码
class Solution {
public:
    void sort_dia(int br, int bc, vector<vector<int>> &mat) {
        vector<int> tmp;

        int r = mat.size();
        int c = mat[0].size();
        
        int cr = br;
        int cc = bc; 
        while ( cr < r && cc < c) {
            tmp.emplace_back( mat[cr][cc] );
            cr++,cc++;
        }
        sort(tmp.begin(), tmp.end());
        cr = br, cc = bc;

        int idx = 0;
        while ( cr < r && cc < c ) {
            mat[cr][cc] = tmp[idx];
            cr++,cc++,idx++;
        }
    }

    vector<vector<int>> diagonalSort(vector<vector<int>>& mat) {


        int r = mat.size();
        int c = mat[0].size();

        vector<vector<int>> ans;

        int cr = r - 1;
        int cc = 0;
        while (  cc < c) {
            if (cr) {
                sort_dia(cr, cc, mat);
                cr--;
                continue;
            }

            sort_dia(cr, cc, mat);
            cc++;
        }

        return vector<vector<int>>(mat);
    }
};

2.2 模拟+确定其实位置关系

同一对角线的位置

i − j = k i-j=k i−j=k, k k k为一定值。

所以我们只需要枚举 k k k即可。

cpp 复制代码
class Solution {
public:
    
    vector<vector<int>> diagonalSort(vector<vector<int>>& mat) {


        int r = mat.size();
        int c = mat[0].size();


        int br;
        int bc;

        vector<int> tmp(max(r,c), 0);
        // k = br - bc 
        // 
        for ( int k = 1 - c; k < r; ++k) {
            k >= 0 ? br = k : br = 0;
            bc = br - k ;
           
            int len = min(r - br, c - bc);
            
            for (int i = br; i < br + len;++i) {
                tmp[i - br] = mat[i][i - k];
            }
            sort(tmp.begin(), tmp.begin() + len);
            
            for (int i = br;i < br + len; ++i) {
                mat[i][ i - k ] = tmp[i - br];
            }
        }

        return vector<vector<int>>(mat);
    }
};

3. 参考

0x3f

相关推荐
ryrhhhh2 小时前
AI搜索占位全流程自动化:矩阵跃动小陌GEO·龙虾智能体的技术架构与落地路径
人工智能·矩阵·自动化
沉睡的无敌雄狮4 小时前
B2B企业获客技术瓶颈:矩阵跃动龙虾机器人+GEO,精准捕捉采购端搜索流量
大数据·矩阵·机器人
穿条秋裤到处跑4 小时前
每日一道leetcode(2026.03.25):等和矩阵分割 I
算法·leetcode·矩阵
西***63475 小时前
讯维高清混合矩阵:定义全国产化指挥中心核心枢纽的新标准
矩阵·成都讯维·产化指挥中心
Frostnova丶5 小时前
LeetCode 3546. 等和矩阵分割
算法·leetcode·矩阵
2301_766558655 小时前
4. 矩阵跃动小陌GEO动态监测算法原理解析,30分钟适配大模型更新的技术逻辑
人工智能·算法·矩阵
沉睡的无敌雄狮5 小时前
大模型更新频繁,搜索占位不稳定?矩阵跃动小陌GEO动态算法快速适配解决方案
人工智能·算法·矩阵
沉睡的无敌雄狮5 小时前
AI优化效果不可控?矩阵跃动数据驱动型龙虾机器人,实现搜索排名稳定提升
人工智能·矩阵·机器人
2301_766558656 小时前
矩阵跃动国产AI搜索优化引擎实战:小陌GEO+龙虾机器人,多平台大模型占位技术拆解
人工智能·矩阵·机器人
2301_766558656 小时前
实战源码级解读:矩阵跃动龙虾机器人本地AI智能体部署,实现7×24小时无人值守获客
人工智能·矩阵·机器人