每日演算法 最大正方形

2021-10-05 21:43:22 字數 875 閱讀 5522

目錄題目

解題思路 **

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

示例:

輸入: 

1 0 1 0 0

1 0 1 1 1

1 1 1 1 1

1 0 0 1 0

輸出: 4

動態規劃

1、設定動態更新變數:令dp(i,j) 表示座標為(i,j)節點為右下角且只包含1的最大正方形的邊長值

計算出所有節點的d(i,j),其中的最大值就是題目所求答案。

2、如何更新動態變數:如何更新該值?對於位置 (i,j)

根據證明,dp(i,j) = min(dp(i-1,j), dp(i,j-1), dp(i-1,j-1)) + 1;

class solution 

int rows = matrix.length, columns = matrix[0].length;

int dp = new int[rows][columns];

for (int i = 0; i < rows; i++) else

maxside = math.max(maxside, dp[i][j]);}}

}int maxsquare = maxside * maxside;

return maxsquare;

}}

動態規劃

1、設定動態更新變數,意義;

2、如何更新動態變數,正常 + 邊界。

最大正方形

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