LeetCode(70):爬楼梯 Climbing Stairs(Java)

2019.7.16 #程序员笔试必备# LeetCode 从零单刷个人笔记整理(持续更新)

出差去海南招生三周,今天又要重新开启学习和科研生活了呀~

斐波那契数列题,具体解析可以参考之前《剑指Offer》刷过的三道题:

#数据结构与算法学习笔记#剑指Offer7:斐波那契数列的四种编程实现方法 + 测试用例(Java、C/C++)

#数据结构与算法学习笔记#剑指Offer8:普通青蛙跳台阶+变态青蛙跳台阶+最清晰数学归纳法证明(Java、C/C++)

#数据结构与算法学习笔记#剑指Offer9:矩形覆盖智力题+斐波那契数列(Java、C/C++)


传送门:爬楼梯

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?

Note: Given n will be a positive integer.

假设你正在爬楼梯。需要 n 阶你才能到达楼顶。

每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?

注意:给定 n 是一个正整数。

示例 1:
输入: 2
输出: 2
解释: 有两种方法可以爬到楼顶。
1.  1 阶 + 1 阶
2.  2 阶

示例 2:
输入: 3
输出: 3
解释: 有三种方法可以爬到楼顶。
1.  1 阶 + 1 阶 + 1 阶
2.  1 阶 + 2 阶
3.  2 阶 + 1 阶


/**
 *
 * 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?
 * Note: Given n will be a positive integer.
 * 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。
 * 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?
 * 注意:给定 n 是一个正整数。
 *
 */

public class ClimbingStairs {
    public int climbStairs(int n) {
        int fast = 1;
        int slow = 0;
        while(n > 1){
            slow = fast - slow;
            fast = slow + fast;
            n--;
        }
        return fast;
    }
}


#Coding一小时,Copying一秒钟。留个言点个赞呗,谢谢你#

你可能感兴趣的:(JAVA,数据结构与算法,LeetCode)