泛洪算法的递归实现容易造成溢出,因此大的二维地图算法中,一般使用广度优先搜索实现。
仔细审题,明确已知条件和所求目标,运用相关知识点逐项分析。
审题时注意题目要求(选正确还是选错误),避免因审题不清失分。涉及代码的题目要逐行分析变量变化。
【考点】递归栈溢出|BFS 迭代实现|系统栈与堆内存区别
🎯 考纲定位:GESP 七级 图论与搜索 模块,考察栈溢出风险。命题人卡住的是"递归优雅但深度爆炸"的误区——学生容易只背书里的递归写法,却忽略大地图场景下的实际运行风险。
🧠 解题思维:递归实现搜索时,栈深度等于地图规模。大地图(如 1000×1000)极易撑爆系统栈,导致程序崩溃。因此 BFS 是工业界标准选择,其队列在堆上分配,无栈溢出风险。这个结论对任何需要遍历大结构的问题都成立。
🪤 陷阱拆解:陷阱在于"一般"二字。学生若只知递归"优雅",忽略"栈溢出"这一实践代价,就会选错。题目特意强调"大地图",就是提示你关注规模对栈的影响。若只背"递归写法"而不理解"栈深度=搜索深度"这一本质,就会掉进"递归也能用"的坑。
🔄 反命题思维:若改问"递归是否永远更省内存?"答案会变——对深图递归更优,但大图 BFS 更稳。刷到类似题,先问:命题人想卡我什么实践代价?