演算法練習 Maximal Square

2021-08-03 02:15:40 字數 957 閱讀 4795

給定乙個只含'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)狀態:squarelen[i][j]表示在(i,j)點時最大正方形的長度。

(2)狀態轉移方程:

如果matrix[i][j]==『0』,則squarelen[i][j]=0;

否則,squarelen[i][j]=min(min(squarelen[i-1][j],squarelen[i][j-1]),squarelen[i-1][j-1])+1;

maxlen = max(squarelen[i][j], maxlen);

(3)邊界情況:

第一行:squarelen[0][i] = (int)(matrix[0][i]-'0'); 如果有乙個點為1,則記maxlen=1;

第一列:squarelen[i][0] = (int)(matrix[i][0]-'0'); 如果有乙個點為1,則記maxlen=1;

int maximalsquare(vector>& matrix) 

// 第一列

for(int i = 0; i < m; i ++)

//其他

for(int i = 1; i < m; i ++)}}

return maxlen * maxlen;

}

your input

["10100","10111","11111","10010"]

your answer

4

expected answer

4

演算法練習1

自己不怎麼關注演算法,但是面試的時候常有一些公司就會給演算法題目,目的也很直接,自己每日一練就好。思路 使用純 c來實現。條件1,陣列b內所有數字加起來為10 動態調整陣列b內的數值。因為時間先後的原因,會導致先前統計個數出現的次數不正確。include include static int a 1...

python knn演算法練習

1,準備資料 從檔案中讀出檔案 資料來自海倫約會 例子 展示如圖 2 資料歸一化 主要公式 newvalue oldvalue min max min tmpmat,rangs,mins knn.autonorm mat tmpmat array 0.44832535,0.39805139,0.56...

演算法練習 吃糖

時間限制 2 s 記憶體限制 128 mb 題目描述 某人買了n兜糖果,第i兜有ai塊糖。此人把所有這些糖果用乙個數字標記起來 他這樣標記這些糖,第一袋糖用用數字1到a1,第二袋糖用數字a1 1到a1 a2,如此類推。如果還沒明白看樣例可以更加明確此人的意圖.這個人不想一口氣把這些糖全吃掉,他用記事...