我最近得到了一个分配,其中我有4对5矩阵,0和1(零代表矩阵的切割部分)。我需要找到一种方法来计算将切割多少个矩阵,正如我所提到的,零代表矩阵的切割部分,因此如果从一个边界到另一个边界是零的直线,则意味着矩阵在该线上被切割,例如(在这张照片中我标记了矩阵将被分割的位置,一条零切片线):
所以,我知道你不会完全为我解决这个代码,我不需要那个,但我需要的是理解这个:
任何帮助将不胜感激:)
答案 0 :(得分:0)
您没有为算法指定任何要求(例如时间和空间复杂度),因此我猜一个与某些特定解决方案相关的答案是:
这种通用算法可以实现如下:
每当找到1时,请尝试将值存储在辅助矩阵中。如果那里已有值,那么:
存储在您发现2个符号之间发生碰撞的碰撞数据结构
不要从这个方向继续任何方向。
这将最多遍历每个单元格4次,因此时间复杂度为O(n)
,当您完成后,您将拥有包含所有冲突的数据结构。
现在,您需要做的就是组合其他数据结构中的所有条目,以收集您真正拥有的多少独特部分。