深入浅出递归和迭代的通用转换思想
一般来说,能用迭代的地方就不要用递归!理论上讲,所有的递归和迭代之间都能相互转换!
刷题碰到【一天一道LeetCode】#130. Surrounded Regions所以来总结一下递归和迭代。
(一)何为迭代?
首先我们来看下面这段简单的代码:
int sum(int n )
{
int sum =0;
for(int i = 1 ; i <= n;i++) sum+=n;//求解1~n的和
return sum;
}
从上述例子中,从1一直加到n,每一次的和都是在上一次的和上加上n,因此,我们不难理解,所谓迭代法(辗转法),就是一种不断用变量的旧值递推新值的过程。
迭代三大步骤:
- 确定迭代变量:确定一个直接或间接地不断由旧值推断新值的