C++ | Leetcode C++题解之第221题最大正方形

题目:

题解:

cpp 复制代码
class Solution {
public:
    int maximalSquare(vector<vector<char>>& matrix) {
        if (matrix.size() == 0 || matrix[0].size() == 0) {
            return 0;
        }
        int maxSide = 0;
        int rows = matrix.size(), columns = matrix[0].size();
        vector<vector<int>> dp(rows, vector<int>(columns));
        for (int i = 0; i < rows; i++) {
            for (int j = 0; j < columns; j++) {
                if (matrix[i][j] == '1') {
                    if (i == 0 || j == 0) {
                        dp[i][j] = 1;
                    } else {
                        dp[i][j] = min(min(dp[i - 1][j], dp[i][j - 1]), dp[i - 1][j - 1]) + 1;
                    }
                    maxSide = max(maxSide, dp[i][j]);
                }
            }
        }
        int maxSquare = maxSide * maxSide;
        return maxSquare;
    }
};
相关推荐
unicrom_深圳市由你创科技3 小时前
哪些控制逻辑应该放在 PLC,哪些放在上位机?
c++
玖玥拾5 小时前
C/C++ 基础笔记(十三)继承
c语言·c++·继承
ao-weilai6 小时前
C++:哈希表
c++·哈希算法·散列表
汉克老师6 小时前
GESP7级C++考试语法知识(二、指数函数(1、pow() 函数)
c++·指数函数·pow·gesp7级·精度误差
退休倒计时6 小时前
【每日一题】LeetCode 53. 最大子数组和 TypeScript
数据结构·算法·leetcode·typescript
旖-旎6 小时前
FloodFill(图像渲染)(1)
c++·算法·深度优先·力扣
汉克老师7 小时前
GESP2026年3月认证C++六级真题与解析(编程题1 选数)
c++·动态规划·线性dp·gesp六级·状态转移·选与不选
有点。7 小时前
C++倍增法(练习题)
c++·算法
凡人叶枫7 小时前
Effective C++ 条款23:宁以 non-member、non-friend 替换 member 函数
linux·开发语言·c++·嵌入式开发
C语言小火车8 小时前
什么时候用智能指针?什么时候用裸指针?
c语言·c++·学习·指针