青蛙每次跳 1 或 2 步,下面代码求跳到第 n 阶的跳法数。下列说法错误的是:
int jump_recur(int n) {
if (n == 1) return 1;
if (n == 2) return 2;
return jump_recur(n-1) + jump_recur(n-2);
}
int jump_dp(int n) {
vector<int> dp(n+1); dp[1]=1; dp[2]=2;
for (int i=3;i<=n;++i) dp[i]=dp[i-1]+dp[i-2];
return dp[n];
}
- A. jump_recur() 采用递归方式。
- B. jump_dp() 采用动态规划方法。
- C. 当 n 较大时 jump_recur() 存在大量重复计算,效率低。
- D. jump_recur() 代码量小,执行效率高。
正确答案:D