給定乙個整型矩陣map,其中的值只有0和1兩種,求其中全是1的所有矩形區域中,最大矩形區域為1的數量。
時間複雜度達到o(mn)
具體思路請參考原書
#include
#include
#include
using
namespace std;
intmaxrecfrombottom
(int
* height,
int len)
s.push
(i);
}while
(!s.
empty()
)return maxarea;
}int
maxrecsize
(int
* map,
int m,
int n)
maxarea =
max(
maxrecfrombottom
(height, n)
, maxarea);}
return maxarea;
}int
main()
}int maxa =
maxrecsize
(map, m, n)
; cout << maxa << endl;
getchar()
;return0;
}
求最大子矩陣的大小
題目 給定乙個整型矩陣map,其中的值只有0和1兩種,求其中全是1的所有矩陣區域中,最大的矩形區域為1的數量。思路 步驟1 矩陣的行數為n,以每一行做切割,統計以當前行作為底的情況下,每個位置往上的1的數量。使用高度陣列height來表示。例如 map 1 0 1 1 1 1 1 1 1 1 1 0...
求最大子矩陣的大小
說明 本文是左程雲老師所著的 程式設計師面試 指南 第一章中 求最大子矩陣的大小 這一題目的c 復現。感謝左程雲老師的支援。題目 給定乙個整型矩陣 map,其中的值只有 0 和 1 兩種,求其中全是1的所有矩形區域中,最大的矩形區域為1的數量。例如 1 1 1 0 其中,最大的矩形區域有 3 個 1...
棧和佇列 求最大子矩陣的大小
題目 給定乙個整型矩陣map,其中的值只有0和1兩種,求其中全是1的所有矩形區域中,最大的矩形區域為1的數量。例如 1 0 1 1 1 1 1 1 1 1 1 0 其中,最大的矩形區域有6個1,所以返回6.題目 如果矩陣的大小是o n m 本題可以做到時間複雜度為o n m 1 矩陣的行數是n,以每...