在写递归算法时,会不会出现递归栈深度极深导致栈内存溢出的情况?
来源:2-2 对数据规模有一个概念
释然小师弟
2019-02-26
写回答
1回答
-
liuyubobobo
2019-02-27
会的。虽然其实在算法面试时,考察这个点很少见;但确实,无论是面试,还是算法竞赛,都存在这个点。
所以在具体算法面试的时候,如果写递归算法,最好估算一下递归深度,如果认为有超过递归栈深度的风险,转而使用非递归算法。
我通常习惯以10^4为界,递归深度可能超过10^4,就转而用非递归。不过由于在大多数情况下,递归算法的写法是极其简单的(相较非递归而言),所以先实现一版递归算法,提交后发现存在MLE,再转而实现非递归,都来得及:)
加油!:)
00
相似问题