在写递归算法时,会不会出现递归栈深度极深导致栈内存溢出的情况?

来源:2-2 对数据规模有一个概念

释然小师弟

2019-02-26

写回答

1回答

liuyubobobo

2019-02-27

会的。虽然其实在算法面试时,考察这个点很少见;但确实,无论是面试,还是算法竞赛,都存在这个点。


所以在具体算法面试的时候,如果写递归算法,最好估算一下递归深度,如果认为有超过递归栈深度的风险,转而使用非递归算法。


我通常习惯以10^4为界,递归深度可能超过10^4,就转而用非递归。不过由于在大多数情况下,递归算法的写法是极其简单的(相较非递归而言),所以先实现一版递归算法,提交后发现存在MLE,再转而实现非递归,都来得及:)


加油!:)

0
0

玩转算法面试-- Leetcode真题分门别类讲解

课程配套大量BAT面试真题,高频算法题解析,强化训练

7410 学习 · 1150 问题

查看课程