avatar
y*m
1
f(1)=1
f(2)=2
f(n)=f(n-1)+f(n-2)
求所有大于0的整数f(n)值
弄了个数组从1..n挨个计算后把值存进去:
function Array getArray(n){
array a[n+1];
a[1]=1;
a[2]=2;
for(int i=3;i<=n;i++)
a[n]=a[n-1]+a[n-2];
return a;
}
function getN(n){
getArray(n)[n];
}
有更好的办法么
thx!
avatar
g*s
2
if it is asked to get all f(k) k = 1..n, it(DP) is the best way.
if it is asked to get the value : f(n), you can use the closed-form solution
to get directly.
avatar
C*y
3
这题如果被问到的话,不会问你这个的
问法1:上楼梯,只能上一个台阶或者两个,问你有多少种走法
问法2:使用constant的空间,怎么每次调用,返回下个f(n)的值,且复杂度最低
问法3:如果使用递归,时间复杂度多少?
可能还有其他的问法,大家补充补充

【在 y***m 的大作中提到】
: f(1)=1
: f(2)=2
: f(n)=f(n-1)+f(n-2)
: 求所有大于0的整数f(n)值
: 弄了个数组从1..n挨个计算后把值存进去:
: function Array getArray(n){
: array a[n+1];
: a[1]=1;
: a[2]=2;
: for(int i=3;i<=n;i++)

avatar
y*m
4
就是这样问-_-,没有问那么多台阶,空间之类..

【在 C***y 的大作中提到】
: 这题如果被问到的话,不会问你这个的
: 问法1:上楼梯,只能上一个台阶或者两个,问你有多少种走法
: 问法2:使用constant的空间,怎么每次调用,返回下个f(n)的值,且复杂度最低
: 问法3:如果使用递归,时间复杂度多少?
: 可能还有其他的问法,大家补充补充

avatar
y*m
6
应该是第一种,问各个n,不懂dp-_-

solution

【在 g***s 的大作中提到】
: if it is asked to get all f(k) k = 1..n, it(DP) is the best way.
: if it is asked to get the value : f(n), you can use the closed-form solution
: to get directly.

avatar
y*m
7
数组解:
function Array getArray(n){
array a[n+1];
a[1]=1;
a[2]=2;
for(int i=3;i<=n;i++)
a[n]=a[n-1]+a[n-2];
return a;
}
function getN(n){
getArray(n)[n];
}

for

【在 a******7 的大作中提到】
: there is a lg(n) solution, but very complicated. I think it's overkilled for
: interview.
: http://zhedahht.blog.163.com/blog/static/2541117420072299193344

avatar
l*r
8
a[n+1] C能通过么?要用malloc吧?

【在 y***m 的大作中提到】
: 数组解:
: function Array getArray(n){
: array a[n+1];
: a[1]=1;
: a[2]=2;
: for(int i=3;i<=n;i++)
: a[n]=a[n-1]+a[n-2];
: return a;
: }
: function getN(n){

avatar
E*n
9
c99 支持变长度数组
gcc -std=c99 file.cpp

【在 l*********r 的大作中提到】
: a[n+1] C能通过么?要用malloc吧?
avatar
e*l
10
这是从1开始的Fibonacci,F(n)可以直接算出来
F(n)=(a^(n+1)-b^(n+1))/sqrt(5)
where a=(1+sqrt(5))/2, b=(1-sqrt(5))/2
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。