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. 简单几何(线段相交)+模拟 POJ 3449 Geometric Shapes

    题目传送门 题意:给了若干个图形,问每个图形与哪些图形相交 分析:题目说白了就是处理出每个图形的线段,然后判断是否相交.但是读入输出巨恶心,就是个模拟题加上线段相交的判断,我第一次WA不知道输出要按字 ...

  2. 简单几何(凸包) POJ 1113 Wall

    题目传送门 题意:求最短路线,使得线上任意一点离城堡至少L距离 分析:先求凸包,答案 = 凸包的长度 + 以L为半径的圆的周长 /*********************************** ...

  3. UVa10779 Collectors Problem(最大流)

    很容易想到源点向所类型有贴纸连边,容量为Bob一开始有的数量:然后贴纸向汇点连边,容量为1. 接下来就是交换部分的连边了.注意交换一次一次进行,每次只能交换一张. 交换,是对于两种贴纸而言,仅会发生在 ...

  4. 关于JS中作用域的销毁和不销毁的情况总结

    window全局作用域->页面关掉才销毁函数执行会形成私有的作用域 1)作用域的销毁 一般情况下,函数执行形成一个私有的作用域,当执行完成后就销毁了->节省内存空间 2)作用域的不立即销毁 ...

  5. php 即使客户端或者服务器断开(如关掉浏览器)脚本也可以继续执行

    <?php ignore_user_abort(); // run script in background set_time_limit(0); // run script forever $ ...

  6. FileStorage Read String Start With Number Need Quotation Mark 读取数字开头的字符串需要加引号

    // Write data FileStorage fs("test.yml", FileStorage::WRITE); fs << "MyString&q ...

  7. IOS第六天(1:scrollView 属性和查看大图)

    ***查看大图 #import "HMViewController.h" @interface HMViewController () <UIScrollViewDelega ...

  8. 通过sqlplus 登录数据库服务器

    点击“运行”,输入"sqlplus",弹出 , 再往里面输入账号scott,密码tiger 或者,点击“运行”,输入"sqlplus /nolog",此时只打开 ...

  9. 去掉网址中的 html编码

    修改 web\urlManager  createUrl函数,去掉 urlEncode函数

  10. Word 2013双引号的BUG

    相信使用Word 2013的朋友大多碰到过这样一个双引号的bug: 问题详细描述: word2013中,打字时引号出现问题,在输入中文情况下,输入左引号为中文,输入右引号时会自动变成英文.微软自己的输 ...