zoukankan      html  css  js  c++  java
  • 【LeetCode】Climbing Stairs

    http://oj.leetcode.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?

    递归解法

    public class Solution {
        public int climbStairs(int n) {
            if(n==0)
                return 0;
            if(n==1)
                return 1;
            if(n==2)
                return 2;
            
            return FClimbStairs(n);
            
        }
    
      
        
        private int FClimbStairs(int n) {
            // TODO Auto-generated method stub
            if(n==1)
                return 1;
            if(n==2)
                return 2;
            
            return FClimbStairs(n-1)+FClimbStairs(n-2);
        }
    }

    非递归解法

    public class Solution {
        public int climbStairs(int n) {
            if(n==0)
                return 0;
            if(n==1)
                return 1;
            if(n==2)
                return 2;
            int[] re = new int[n+1];
            re[0]=0;
            re[1]=1;
            re[2]=2;
            for(int i=3;i<n+1;i++){
                re[i]=re[i-1]+re[i-2];
            }
            return re[n];
            
        }
    
        
    }
  • 相关阅读:
    PyQt4 调用串口API pySerial API说明
    树的计算
    数据结构单链表实现
    虚函数和抽象函数
    静态内存和堆栈
    二叉树学习图片---郝斌
    汉诺塔
    循环队列的实现
    队列的实现
    栈的应用
  • 原文地址:https://www.cnblogs.com/yixianyixian/p/3716904.html
Copyright © 2011-2022 走看看