1. 程式人生 > 其它 >劍指 5.用兩個棧實現佇列

劍指 5.用兩個棧實現佇列

技術標籤:動態規劃leetcode演算法

爬樓梯

題目來源:爬樓梯

題目表述:

假設你正在爬樓梯。需要 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]; } }