1. 程式人生 > >leetcode 爬樓梯 c語言 實現

leetcode 爬樓梯 c語言 實現

  • 假設你正在爬樓梯需要Ñ階你才能到達樓頂每次你可以爬1或2個臺階你有多少種不同的方法可以爬到樓頂呢注意:?!給定Ñ是一個正整數 *

思路是把走法看成n-1層的走法+1與n-2層的走法+2之和,屬於動態規劃
用迭代代替遞迴

int climbStairs(int n) {
    int sum=0,p2=2,p3=3;
    if(1==n) return 1;
    if(2==n) return 2;
    if(3==n) return 3;
    while(n>3)
    {
      sum=p2+p3;
      p2=p3;
       p3=sum
; n--; } return sum; }