我得到一个N * M网格0s和1s.I我需要找到大小为A * B且其中包含全部1的子矩阵的数量。
就像假设我有一个2 * 6的网格
网格是:
0 1 1 1 1 0
0 1 1 1 1 1
现在,如果我想找到大小为2 * 3的子矩阵
然后这里的答案是2。
答案 0 :(得分:0)
编辑:以下提示假设“子矩阵”表示“行的连续子集与连续子集的交集列“。 (通常允许子矩阵跳过行和列。)
我认为这是一个家庭作业问题,所以我只是提供一个提示而不是一个完整的答案。
假设有一种方法可以有效地计算每个单元格(i,j),它是否是连续运行至少m 1的最右边单元格。这会有什么帮助?
另一个暗示:任何给定的单元格(i,j)要么是某个N * M网格的最右下角1s,要么不是。