问题描述
例如,在此代码中,工作正常,使用数组而不是指向数组的指针进行存储。 (int mem []代替int * mem)
int fibonacci(int n,int mem[]){
if(n < 3)
return 1;
if(mem[n])
return mem[n];
mem[n] = fibonacci(n - 1,mem) + fibonacci(n - 2,mem);
return mem[n];
}
int climbStairs(int n){
int mem[50] = {0};
return fibonacci(n + 1,mem);
}
我不知道当其中一个函数返回时,返回的函数的调用方函数如何返回 将数据保存到先前的mem [n]。函数返回时是否应该删除函数数组?在该函数返回后,调用者函数调用的另一个函数如何具有该值?
注意:这是在leetcode中解决爬楼梯的解决方案。由我写。
解决方法
在函数参数中使用[]
时,它是一个指针。
int foo(int x[])
和
int foo(int *x)
等于100%。
但是,这将是另外一回事:
int foo(int x[10])