简单带你了解java中的递归,告别面试中遇到的递归障碍

简单带你了解java中的递归,告别面试中遇到的递归障碍

今天来讲讲java递归这个东西,

说递归很常见,

面试也很常见,

有时候你不知不觉的用出来了,

但是当你去面试的时候,面试官问你说什么是递归的时候,你却懵掉了?

或者说你哪些场景用了哪些递归了,

反正我是坑了,一紧张就忘了,然后啥也说不出来了。

后来我仔细回想了下,发现递归有用到,而且用的挺多的,只是有些点不知道怎么说。

今天特意整理了下

解释:程序调用自身的编程技巧叫做递归( recursion)。

递归做为一种算法在程序设计语言中广泛应用。 一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。递归的能力在于用有限的语句来定义对象的无限集合。

简单带你了解java中的递归,告别面试中遇到的递归障碍

递归的三个条件:

  1. 边界条件

  2. 递归前进段

  3. 递归返回段

当边界条件不满足时,递归前进;当边界条件满足时,递归返回。

理论就是这样烦,说个简单的故事大家应该就了解了

简单带你了解java中的递归,告别面试中遇到的递归障碍

从前有座山,山里有座庙,庙里有个老和尚,在给小和尚讲故事。讲的什么故事呢?从前有座山,山里有座庙,庙里有个老和尚,在给小和尚讲故事。如此重复,一直循环啊循环。。循环N次后 ,就讲完了,讲不完就该内存溢出了

是不是很清晰明了,哈哈

递归的例子我也随便写了个

就是n个数之和把,这里就暂只10个把

简单带你了解java中的递归,告别面试中遇到的递归障碍

实践和理论都有了,以后面试在也不怕说不出来了,还是得整理下思路才清晰啊

相关推荐