最大正方形

2021-10-23 18:28:01 字數 1290 閱讀 2624

問題描述 :

在乙個由 0 和 1 組成的二維矩陣內,找到只包含 1 的最大正方形,並返回其面積。

示例:輸入:

1 0 1 0 0

1 0 1 1 1

1 1 1 1 1

1 0 0 1 0

輸出: 4

輸入說明 :

首先輸入矩陣的行數m、列數n

然後輸入m行,每行n個字元0或1,中間無空格分隔。

輸出說明 :

輸出乙個整數

輸入範例 :

4 510100

10111

11111

10010

輸出範例 :

4

//dp沒用到  遇到乙個1  就往前找  遇到0就停止

#include

#include

using

namespace std;

intmaxsquare

(vectorint>> matrix)

int res=0;

vectorint>>

dp(matrix.

size()

,vector<

int>

(matrix[0]

.size()

));for

(int i=

0;isize()

;i++

)else

}for

(int i=

0;i.size()

;i++

)else

}for

(int i=

1;isize()

;i++

)else

}for

(int l=n;l<=j;l++)}

m--; n--;if

(tag||flag)}if

((min(i,j)

-bian)*(

min(i,j)

-bian)

>res)}}

}return res;

}int

main()

matrix.

push_back

(tmp)

; tmp.

clear()

;}int res=

maxsquare

(matrix)

; cout<}

最大正方形

題目鏈結 在乙個n m的只包含0和1的矩陣裡找出乙個不包含0的最大正方形,輸出邊長。輸入格式 輸入檔案第一行為兩個整數n,m 1 n,m 100 接下來n行,每行m個數字,用空格隔開,0或1.輸出格式 乙個整數,最大正方形的邊長 輸入樣例 1 複製 4 4 0 1 1 1 1 1 1 0 0 1 1...

最大正方形

題解 if a i j 1 f i j min min f i j 1 f i 1 j f i 1 j 1 1 f i j 表示以節點i,j為右下角,可構成的最大正方形的邊長。只有a i j 1時,節點i,j才能作為正方形的右下角 對於乙個已經確定的f i j x,它表明包括節點i,j在內向上x個節...

最大正方形

一.題目描述 在乙個由 0 和 1 組成的二維矩陣內,找到只包含 1 的最大正方形,並返回其面積。示例 輸入 1 0 1 0 0 1 0 1 1 1 1 1 1 1 1 1 0 0 1 0 輸出 4 二.思路 動態規劃 當前元素matrix i j 對應的最大正方形邊長跟matrix i 1 j m...