其实打了这么多的代码以后笔者发现要灵活应用的和可以最大化的减少代码量的算法在我看来是递归。
其实看周边的人都说递归这不好那不好的。其实总体来说这个算法是非常不错的,有很多的问题都不得不需要它,因为递归的方法首先是代码量少,总体来说它是将解决问题的方式以面向过程的方向去考虑,我只需要将这个问题进行一个肢解,肢解到后面就会简化为一个递归方法的出口和中间(也就是说从这个小问题到下一个小问题的所需要的步骤)其中很多奇奇怪怪的临界点是不需要去考虑的,所以从这里来看这个算法简化了我们解决问题的步骤以及需要解决中很多的小地方也就是一些临界点,我们是可以不需要在此进行考虑的。
还有对于这个我们如果需要利用其他方法解决递归的问题的话,尚且不说绕过递归的方法需要多少的代码,就单单这个思路就比较难实现,而且有的时候还可能会把这个问题复杂化。所以学会善用递归非常重要。
其实简单来说这个递归无非就是将递归肢解。
在理清从这一步到下一步的的情况下,再将递归的出口进行一个相应的控制,在这基础上一个递归程序差不多也就出来了。
最后也说一点,递归好也好,不好也不好,所以善用递归!!!善用递归!!!善用递归!!!