LeetCode Maximal Square(最大子矩陣)

問題:給出一個由0,1組成的二維數組,求由1組成的最大子矩陣

思路:第一種方式使用暴力法,在遍歷二維數組時,如果當前元素是1,則以當前位置爲起點,判斷先增的一行,一列是否全是1,如果是,則將當前邊長度加1,繼續看新增的行與列是全爲1,直到不滿足爲止。同時更新最大邊長度。

第二種方式是動態規劃法,用dp(i,j) 表示截止到(i,j)位置時的最大邊。動態轉移方程爲dp(i,j)=min(dp(i,j-1),dp(i-1,j), dp(i-1,j-1))+1

第三種方式時在第二種作的優化,使用滾動數組

具體代碼參考:

https://github.com/wuli2496/OJ/tree/master/LeetCode/Maximal%20Square

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章