LeetCode刷题实战70:爬楼梯
算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试。所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 !
今天和大家聊的问题叫做 爬楼梯,我们先来看题面:
https://leetcode-cn.com/problems/climbing-stairs/
You are climbing a stair case. It takes n steps to reach to the top.
Each time you can either climb 1 or 2 steps. In how many distinct ways can you climb to the top?
题意
示例 1:
输入:2
输出:2
解释:有两种方法可以爬到楼顶。
1. 1 阶 + 1 阶
2. 2 阶
示例 2:
输入:3
输出:3
解释:有三种方法可以爬到楼顶。
1. 1 阶 + 1 阶 + 1 阶
2. 1 阶 + 2 阶
3. 2 阶 + 1 阶
解题
class Solution {
public int climbStairs(int n) {
if(n==1)return 1;
int sum[]=new int[n+1];
sum[0]=0;sum[1]=1;sum[2]=2;
for(int i=3;i<=n;i++){
sum[i]=sum[i-2]+sum[i-1];
}
return sum[n];
}
}
上期推文:
评论