为什么很多人 DFS 写得飞起,一到「矩阵最长递增路径」就彻底懵了?
为什么很多人 DFS 写得飞起,一到「矩阵最长递增路径」就彻底懵了?
有一类算法题,非常容易让人产生错觉。
看起来只是:
矩阵 + DFS结果一写。
不是超时。
就是死循环。
再不然:
明明逻辑没错 结果性能直接爆炸而「矩阵中的最长递增路径(Longest Increasing Path in a Matrix)」。
就是这种经典“面试看起来简单,真正做起来极其考验算法功底”的题。
很多人第一次做这题的时候,脑子里的思路一般是:
从每个点开始DFS 找到所有递增路径 取最大值然后。
CPU开始冒烟。
一、这题为什么这么容易把人绕晕?
题目其实很简单:
给定一个矩阵。
你可以:
- 上下左右移动
- 只能走到“比当前值更大”的格子
求:
最长递增路径长度
比如:
[ [9,9,4], [6,6,8], [2