《LeetCode力扣练习》第70题 爬楼梯 Java
一、资源
-
题目:
假设你正在爬楼梯。需要 n 阶你才能到达楼顶。
每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?
示例 1:
输入:n = 2
输出:2
解释:有两种方法可以爬到楼顶。- 1 阶 + 1 阶
- 2 阶
示例 2:
输入:n = 3
输出:3
解释:有三种方法可以爬到楼顶。- 1 阶 + 1 阶 + 1 阶
- 1 阶 + 2 阶
- 2 阶 + 1 阶
提示:
1 <= n <= 45
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/climbing-stairs
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 -
上代码(经过线上OJ测试)
import java.util.ArrayDeque; /** * Created with IntelliJ IDEA. * * @author : DuZhenYang * @version : 2022.03.01 18:01:48 * description : */ public class LeetCode { /* * 递归算法,但是提交答案时会超时 public int climbStairs(int n) { if(n==1){ return 1; }else if(n==2){ return 2; }else { return climbStairs(n-1)+climbStairs(n-2); } } */ public int climbStairs(int n) { if (n==1){ return 1; } if(n==2){ return 2; } int n2=1; int n1=2; int result=0; for (int i=0;i<n-2;i++){ result=n1+n2; n2=n1; n1=result; } return result; } }