一眼就看到了函数里的六层循环, 么的说, O(n^6).
这时, 我大哥说他的时间复杂度是 O(n^3). 那我这小心情, 必须整出来, 再想.
方案二
上面的六层循环中, 能不能想办法去掉一层呢?...在最后判断是否全1的循环中, 如果左上的数字是0, 那必然没有全1子矩阵了
再如果向下找的时候, 碰到0, 那下一列的时候也没必要超过这里了, 因为子矩阵至少有一个0了, 如下图:
?...image-20200710234204779
在向右遍历的时候同理, 这样, 我们就可以确定, 所有遍历到的值都是1, 可以将判断全1的两层循环去掉. nice....上面的四层循环, 有没有什么办法能再减少一层呢?
想一下, 我们在第四层循环中, 向右遍历, 找的是什么?...result += thisMaxColSize;
}
}
}
return result;
}
再看时间复杂度, 终于, O(n^3).
----
还有没有比三次方更快的解法呢