最大全1子矩阵

1 1 0 0
0 1 1 0
0 1 1 0
0 1 1 0

 

要求上图中最大的全部是1的子矩阵的大小?

 

step1:每一行从前往后生成连续1的个数

 

1 2 0 0
0 1 2 0
0 1 2 0
0 1 2 0

 

step2:K*(上下不小于当前值的元素个数,包含本身)

 

1 2 0 0
0 4 6 0
0 4 6 0
0 4 6 0

例如第三行第三列的数值计算方法为:2*(本身1+往上不小于2的个数为1+往下不小于2的个数为1)=2*3=6

 

这是一个小技巧,大家可以仔细推敲,总的来说后面的计数利用了前面已经计算的数值。

 

posted @ 2015-12-25 21:12  xfei.zhang  阅读(236)  评论(0编辑  收藏  举报