K12教育赛事综合服务平台
聚乐之家官方网站
下载聚乐之家官方App
专注青少年竞赛题库网站
爬楼梯问题定义:给定正整数n代表台阶总数量,每次可以选择向上爬1个或2个台阶,求总共有多少种不同的爬到楼顶的方法。
int climbStairs(int n) { if(n <= 2) return n; int dp[n]; dp[1] = 1; dp[2] = 2; for(int i=3; i<=n; i++) dp[i] = dp[i-1] + dp[i-2]; return dp[n]; }
int climbStairs(int n) { if(n <= 2) return 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]; }
int climbStairs(int n) { if(n <= 2) return n; vector<int> dp(n); dp[0] = 1; dp[1] = 2; for(int i=2; i<n; i++) dp[i] = dp[i-1] + dp[i-2]; return dp[n]; }
int climbStairs(int n) { if(n <= 2) return n; int a = 1, b = 2, c; for(int i=3; i<=n; i++) { c = a + b; a = b; b = a; } return c; }