algorithm - 使用贪心方法,给定一个 m × n 布尔矩阵 B,找到其元素全为零的最大平方子矩阵
问题描述
任何人都知道使用贪婪的方法请帮助我解决这个问题。我已经通过动态方法完成了这个。但我主要关心的是使用贪婪方法。而且我们还必须找到 0 的最大平方子矩阵。 https://www.geeksforgeeks.org/maximum-size-sub-matrix-with-all-1s-in-a-binary-matrix/ 这是使用动态方法并查找具有 1 的元素的示例。注意:使用贪心
解决方案
贪婪方法是您做出局部最优选择的地方,相信它会导致最优解。所以基本上我们首先在 mXn 矩阵的四个边距之一中搜索 0,即在第一行、最后一行、第一列或最后一列。一旦找到 0,我们就开始寻找可能的最大正方形。
例子-
0 0 1 1 0 0
1 0 0 0 0 0
1 1 1 0 0 0
1 1 1 0 0 0
1 0 0 0 0 0
在上面的例子中,第一个元素是 0,所以检查 5X5 矩阵的存在,它失败了,因为第三个元素是 1。现在有几种情况-
1] 如果您离开进一步评估的第一行,您仍然可以瞄准大小为 4X4 的矩阵。
2] 如果您离开第三列并仅考虑前两列,则瞄准 2X2 矩阵。
3] 如果您离开第三列并仅考虑最后三列,则瞄准 3X3 矩阵。
4] 我们不会考虑同时删除行和列的选项,因为它不会比前三个选项更好。
考虑到贪婪,我们会选择第一种情况并重复该过程。
推荐阅读
- django - 在 python 中格式化日期,就像在 django 模板中所做的那样
- java - java.lang.IllegalArgumentException:列名无效
- html - 是否可以将网络摄像头视频嵌入到浏览器屏幕截图中?
- java - 调用长度时避免做 != null
- docker - 为 Kubernetes 中的容器配置 HTTP 代理
- java - 结尾部分不允许使用 Gradle 内容
- c# - 发送带有包含在 URL .NET 中的附件的电子邮件
- python - 如何从 URL 中的第二个表中抓取数据?
- python - 我如何阻止此打印(val.text)打印同一张表 8 次
- reactjs - 在 github 上托管网页