悬线法
- 用途
解决给定矩阵中满足条件的最大子矩阵
- 做法
用一条线(横竖貌似都行)左右移动直到不满足约束条件或者到达边界
- 定义
(left[i][j]):代表从((i,j))能到达的最左位置
(right[i][j]):代表从((i,j))能到达的最右位置
(up[i][j]):代表从((i,j))向上扩展最长长度.
- 状态转移
[left[i][j]=max(left[i][j],left[i-1][j])
]
[right[i][j]=min(right[i][j],right[i-1][j])
]
- 至于为什么递推公式中考虑上一层的情况?
是因为(up)数组的定义,(up)数组代表向上扩展最长长度, 所以需要考虑上一层的情况.