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);
    }
};
相关推荐
NiceCloud喜云2 小时前
Opus 4.8 的 Effort Control 怎么选:Low 到 Max 五档策略
android·java·大数据·前端·c++·python·spring
cjhbachelor2 小时前
c++继承
c++
肩上风骋2 小时前
C++14特性
开发语言·c++·c++14特性
QiLinkOS5 小时前
【从实验室到商业战场:发明专利如何重塑科技与企业的共生生态】
大数据·c语言·数据结构·c++·人工智能·单片机·算法
Irissgwe6 小时前
c++11(lambda表达式与包装器、线程库)
c++·c++11·lambda表达式·线程库·包装器·互斥量库·条件变量库
Peter·Pan爱编程6 小时前
14. Lambda 表达式:随手可写的函数对象
c++·算法·ai编程
不想写代码的星星7 小时前
从分支预测角度看 C++:为什么你的热循环慢得离谱?
c++
郝学胜-神的一滴8 小时前
Qt 高级开发 018:复刻经典登录界面布局与窗口美化全解析
开发语言·c++·qt·程序人生·用户界面
郝亚军8 小时前
IEEE 754 单精度浮点的SEM表示
开发语言·c++·算法
Yyyyyy~9 小时前
【C++】数组篇
开发语言·c++