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;
    }
};
相关推荐
会周易的程序员23 分钟前
microLog 后端开发指南
开发语言·c++·物联网·设计模式·日志·iot·aiot
笨笨没好名字36 分钟前
Leetcode刷题python3版第一周(下)
linux·算法·leetcode
汉克老师36 分钟前
GESP2026年6月认证C++二级( 第三部分编程题(2、菱形))精讲
c++·找规律·绘制图形·对角线·双重循环
☆cwlulu1 小时前
try-throw-catch异常捕获流程
开发语言·c++
王老师青少年编程2 小时前
2026年6月GESP真题及题解(C++五级):排排坐
c++·题解·真题·gesp·五级·2026年6月·排排坐
郝学胜-神的一滴2 小时前
Qt 高级编程 034:深耕QWidget底层内核—彻底吃透无边框窗口设计核心原理
开发语言·c++·qt·程序人生·软件开发·用户界面
不会写代码的ys2 小时前
C++复习篇
java·开发语言·c++
aichitang20243 小时前
数论变换(NTT)
c++·算法·fft·ntt
_olone3 小时前
AtCoder Beginner Contest 465 D - X to Y
c++·算法
青山木3 小时前
Hot 100 --- LRU 缓存
java·数据结构·算法·leetcode·链表·缓存·哈希