Monday, September 4, 2017

[LeetCode]Longest Line of Consecutive One in Matrix


解法很直观,四个方向各DP一次,假设矩阵m*n,时间复杂度空间复杂度都是O(m * n)。我们尝试优化,首先可以用三维数组DP,第三个维度记分别录各四个方向的连续1的长度,因为第三个维度是常数,所以时间空间复杂度依然不变,只是我们只需要扫一次。进一步优化,因为我们每一次只用左边右边上边左上对角线四个方位的结果,所以可以把DP数组降维,时间复杂度O(m * n),空间复杂度O(n),代码如下:


No comments:

Post a Comment