給定乙個只含'0'和'1'的二維矩陣,要求找出其中只包含1的最大的正方形並返回其面積。
例如:
1 0 1 0 01 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,如此類推。如果還沒明白看樣例可以更加明確此人的意圖.這個人不想一口氣把這些糖全吃掉,他用記事...