失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 动态规划LeetCode70爬楼梯

动态规划LeetCode70爬楼梯

时间:2019-02-18 01:40:19

相关推荐

动态规划LeetCode70爬楼梯

题目描述:

假设你正在爬楼梯。需要n阶你才能到达楼顶。

每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?

注意:给定n是一个正整数。

方法一:

1 class Solution {2public int climbStairs(int n) {3 if(n==1||n==2) {4 return n;5 }6 return climbStairs(n-1)+climbStairs(n-2);7 8}9 }

很容易想到上面这种方法,其时间复杂度为O(2^n),提交OJ会超时。

方法2:

如何用递推求出第i阶爬法数量?

1 class Solution { 2public int climbStairs(int n) { 3 int[] dp=new int[n+3]; 4 dp[1]=1; 5 dp[2]=2; 6 for(int i=3;i<=n;i++) { 7 dp[i]=dp[i-1]+dp[i-2]; 8 } 9 return dp[n];10}11 }

执行用时在所有Java提交中击败了100.00%的用户!!

动态规划原理:

下一题动态规划经典题目LeetCode198打家劫舍

欢迎评论!!共同进步!!

如果觉得《动态规划LeetCode70爬楼梯》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。