劍指 5.用兩個棧實現佇列
阿新 • • 發佈:2021-01-06
爬樓梯
題目來源:爬樓梯
題目表述:
假設你正在爬樓梯。需要 n 階你才能到達樓頂。
每次你可以爬 1 或 2 個臺階。你有多少種不同的方法可以爬到樓頂呢?
注意:給定 n 是一個正整數。
分析:
根據題目,可以先列個表
當n=3時,可以看成 一級臺階時上兩步+二級臺階時上1步,及Count(3)=count(2)+count(1)。
當n=4時,可以看成 二級臺階時上兩步+三級臺階時上1步,及Count(4)=count(3)+count(2)。
…
即可以得出遞推關係式:
程式碼實現
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scanner =new Scanner(System.in);
while(scanner.hasNext()) {
int n = scanner.nextInt();
System.out.println(Count(n));
}
}
public static int Count(int n) {
int [] dp =new int [n+1];
if (n<3) {
return n;
}else {
dp[0]=0;
dp[1]=1;
dp[2]=2;
for(int i=3;i<dp.length;i++) {
dp[i]=dp[i-1]+dp[i-2];
}
}
return dp[dp.length-1];
}
}