2713. 矩阵中严格递增的单元格数

2713. 矩阵中严格递增的单元格数


题目链接:2713. 矩阵中严格递增的单元格数

代码如下:

cpp 复制代码
//动态规划+优化
//参考链接:https://leetcode.cn/problems/maximum-strictly-increasing-cells-in-a-matrix/solutions/2286920/dong-tai-gui-hua-you-hua-pythonjavacgo-b-axv0
class Solution 
{
public:
    int maxIncreasingCells(vector<vector<int>>& mat) 
    {
        map<int,vector<pair<int,int>>> graph;
        for(int i=0;i<mat.size();i++)
        {
            for(int j=0;j<mat[0].size();j++)
            {
                // 相同元素放在同一组,统计位置
                graph[mat[i][j]].emplace_back(i,j);
            }
        }

        vector<int> row_max(mat.size()),col_max(mat[0].size());
        for(auto& [_,pos]:graph)
        {
            vector<int> mx;// 先把最大值算出来,再更新 row_max 和 col_max
            for(auto& [i,j]:pos)
            {
                mx.push_back(max(row_max[i],col_max[j])+1);
            }
            for(int k=0;k<pos.size();k++)
            {
                auto& [i,j]=pos[k];
                row_max[i]=max(row_max[i],mx[k]);// 更新第 i 行的最大 f 值
                col_max[j]=max(col_max[j],mx[k]);// 更新第 j 列的最大 f 值
            }
        }
        return ranges::max(row_max);
    }
};
相关推荐
Q741_1474 分钟前
每日一题 力扣 2515.到目标字符串的最短距离 循环数组 C++题解
c++·算法·leetcode
深邃-6 分钟前
【C语言】-自定义类型:结构体
c语言·开发语言·数据结构·c++·html5
Olivia_0_0_13 分钟前
【面试题】C++面试题整理——具身智能 / 自动驾驶 / 嵌入式 / 后台开发通用
c++·面试
ol木子李lo15 分钟前
Qt6 替代废弃 QMediaPlaylist 的解决方案
c语言·c++·vscode·qt·个人开发·visual studio·qt6.3
雨浓YN16 分钟前
WPF MVVM 模式(调Prism库)项目创建笔记 —— 包含C++/CLI OpenCV互操作
c++·笔记·wpf
清辞85318 分钟前
【Day4】C++竞赛每日练习
数据结构·c++·算法
‎ദ്ദിᵔ.˛.ᵔ₎19 分钟前
C++ 继承
开发语言·c++
史迪仔011225 分钟前
[QML] Popup 与 Dialog
开发语言·前端·javascript·c++·qt
John.Lewis26 分钟前
C++加餐课-stack_queue:计算器-逆波兰表达式
开发语言·c++
SilentSamsara29 分钟前
Linux 管道与重定向:命令行精髓的结构性解析
linux·运维·服务器·c++·云原生