dp.

#define MAX 1000
int rowLeft[MAX][MAX];
int colUp[MAX][MAX];
int dp[MAX][MAX];
void calRow(char **matrix,int matrixRowSize,int matrixColSize){
int i,j;
for(i=0;i<matrixRowSize;++i){
for(j=0;j<matrixColSize;++j)
{
if(matrix[i][j]=='1')
{
if(j==0)rowLeft[i][j]=1;
else rowLeft[i][j]=rowLeft[i][j-1]+1;
}
else rowLeft[i][j]=0;
}
}
}
void calCol(char **matrix,int matrixRowSize,int matrixColSize){
int i,j;
for(i=0;i<matrixRowSize;++i)
{
for(j=0;j<matrixColSize;++j)
{
if(matrix[i][j]=='1'){
if(i==0)colUp[i][j]=1;
else colUp[i][j]=colUp[i-1][j]+1;
}
else colUp[i][j]=0;
}
}
}
int min(int a,int b,int c){
int t;
t=(a<b?a:b);
t=(t<c?t:c);
return t;
}
int maximalSquare(char** matrix, int matrixRowSize, int matrixColSize) {
int i,j,maxSquare=0;
calRow(matrix,matrixRowSize,matrixColSize);
calCol(matrix,matrixRowSize,matrixColSize);
for(i=0;i<matrixRowSize;++i)
{ for(j=0;j<matrixColSize;++j)
{
if(i==0||j==0)
dp[i][j]=(matrix[i][j]=='1'?1:0);
else dp[i][j]=min(dp[i-1][j-1]+1,rowLeft[i][j],colUp[i][j]);
maxSquare=(maxSquare>dp[i][j]?maxSquare:dp[i][j]);
}
}
return maxSquare*maxSquare;
}

  

我这个空间复杂度有点高

Maximal Square || LeetCode的更多相关文章

  1. 求解最大正方形面积 — leetcode 221. Maximal Square

    本来也想像园友一样,写一篇总结告别 2015,或者说告别即将过去的羊年,但是过去一年发生的事情,实在是出乎平常人的想象,也不具有代表性,于是计划在今年 6 月份写一篇 "半年总结" ...

  2. leetcode每日解题思路 221 Maximal Square

    问题描述: 题目链接:221 Maximal Square 问题找解决的是给出一个M*N的矩阵, 只有'1', '0',两种元素: 需要你从中找出 由'1'组成的最大正方形.恩, 就是这样. 我们看到 ...

  3. 【动态规划】leetcode - Maximal Square

    称号: Maximal Square Given a 2D binary matrix filled with 0's and 1's, find the largest square contain ...

  4. LeetCode之“动态规划”:Maximal Square && Largest Rectangle in Histogram && Maximal Rectangle

    1. Maximal Square 题目链接 题目要求: Given a 2D binary matrix filled with 0's and 1's, find the largest squa ...

  5. 【LeetCode】221. Maximal Square

    Maximal Square Given a 2D binary matrix filled with 0's and 1's, find the largest square containing ...

  6. 【刷题-LeetCode】221. Maximal Square

    Maximal Square Given a 2D binary matrix filled with 0's and 1's, find the largest square containing ...

  7. [LintCode] Maximal Square 最大正方形

    Given a 2D binary matrix filled with 0's and 1's, find the largest square containing all 1's and ret ...

  8. [LeetCode] Maximal Square 最大正方形

    Given a 2D binary matrix filled with 0's and 1's, find the largest square containing all 1's and ret ...

  9. LeetCode Maximal Square

    原题链接在这里:https://leetcode.com/problems/maximal-square/ 这是一道DP题,存储历史信息是到当前点能有的最大square, 用二维数组dp存储. 更新方 ...

随机推荐

  1. office2010永久的密钥

      1.Office Professional Plus 2010: 6QFDX-PYH2G-PPYFD-C7RJM-BBKQ8 BDD3G-XM7FB-BD2HM-YK63V-VQFDK   2.O ...

  2. BZOJ4140 : 共点圆加强版

    假设当前询问点为$(A,B)$,那么它在一个以$(x,y)$为圆心的圆里需要满足: $(x-A)^2+(y-B)^2\leq x^2+y^2$ $2Ax+2By\geq A^2+B^2$ 等价于询问所 ...

  3. BZOJ3787 : Gty的文艺妹子序列

    将序列分成$\sqrt{n}$块,预处理出每两块之间的逆序对数,以及ap[i]表示前i块内数字出现次数的树状数组 预处理:$O(n\sqrt{n}\log n)$ 修改时,ap[i]可以在$O(\sq ...

  4. JAVA计算文件大小

    File f = new File(save_path+File.separator + resouce_id+".zip"); FileInputStream fis = new ...

  5. 【SPOJ】694. Distinct Substrings

    http://www.spoj.com/problems/DISUBSTR/ 题意:求字符串不同子串的数目. #include <bits/stdc++.h> using namespac ...

  6. 【BZOJ】1090: [SCOI2003]字符串折叠(dp)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1090 随便yy一下.. 设f[i,j]表示i-j的最小长度 f[i, j]=min{j-i+1, f ...

  7. 李洪强-C语言2-字符串

      C语言字符串 一.字符串基础 注意:字符串一定以\0结尾. Printf(“yang\n”); 其中yang为字符串常量,“yang”=‘y’+‘a’+‘n’+‘g’+‘\0’.字符串由很多的字符 ...

  8. QMessageBox 使用方法

    在Qt中经常需要弹出窗口,QMessageBox可以实现此功能,一共有三种窗口,information, question, 和 warning,critical, about分别对应感叹号,问号和叉 ...

  9. [转].net中的认证(authentication)与授权(authorization)

    本文转自:http://www.cnblogs.com/yjmyzz/archive/2010/08/29/1812038.html 注:这篇文章主要给新手看的,老手们可能会觉得没啥营养,就请绕过吧. ...

  10. Java发展史之Java由来

    Java:由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台的总称.Java语言是一种可以撰写跨平台应用软件的面向对象的程序设计语言,由当时任职太阳微系统的 ...