最大正方形

2021-10-08 11:40:34 字數 724 閱讀 5994

最大正方形

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

題解:動態規劃:使用dp[i][j]代表以i,j為右下角只包含1的正方形

首先需要考慮幾點

一、當前的dp[i][j]的值和和(i-1,j)(i,j-1),(i-1,j-1)有關,如果當前(i,j)為1

那麼需要考慮這三個位置的最小值加上當前的1,在取最小值時確保是正方形

二、我們每次取當前位置的dp[i][j]和乙個變數最大正方形進行比較,大於則替換掉成當前的值

*時間複雜度:o(nm)

空間複雜度:o(mn)

public

class

maximalsquare

int col=matrix[0]

.length;

int row=matrix.length;

int[

] dp=

newint

[row]

[col]

;for

(int i=

0;i)else

} maxsize=math.

max(maxsize,dp[i]

[j]);}

}return maxsize*maxsize;

}}

最大正方形

題目鏈結 在乙個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...