题目来源:
leetcode题目,网址:面试题 08.01. 三步问题 - 力扣(LeetCode)
解题思路:
动态规划。1 阶楼梯 1 种走法,2 阶楼梯 2 种走法,3 阶楼梯 6 种类走法。假设有 n(n>3) 阶楼梯,n-1 阶楼梯有 a 种走法,n-2 阶楼梯有 b 种走法,n-3 阶楼梯有 c 种走法,则 n 阶楼梯有 a+b+c 中走法。
解题代码:
class Solution {
public int waysToStep(int n) {
if(n==1){
return 1;
}else if(n==2){
return 2;
}else if(n==3){
return 4;
}else{
return ways(n);
}
}
public int ways(int n){
long preThree=1;
long preTwo=2;
long preOne=4;
int now=4;
long res=preOne+preTwo+preThree;
while(now!=n){
preThree=preTwo;
preTwo=preOne;
preOne=res;
res=(preOne+preTwo+preThree)%1000000007;
now++;
}
return (int)res;
}
}
总结:
无官方题解。
staircase 楼梯