[leetcode]Climbing Stairs
2014-10-27 21:43
337 查看
问题描述:
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?
思路: 设到达第n个台阶可能的方式为f(n),到达第n个台阶有两中方式:
从第n-1阶迈一个台阶
从第n-2阶迈两个台阶
所以f(n) = f(n-1) + f(n-2)
这是一个斐波那契数列。
注:类似的问题可以用同样的思路解答。
代码:
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?
思路: 设到达第n个台阶可能的方式为f(n),到达第n个台阶有两中方式:
从第n-1阶迈一个台阶
从第n-2阶迈两个台阶
所以f(n) = f(n-1) + f(n-2)
这是一个斐波那契数列。
注:类似的问题可以用同样的思路解答。
代码:
public class Climbing_Stairs { //java public int climbStairs(int n) { if(n<=0) return 0; if(n == 1) return 1; if(n == 2) return 2; int pre1 = 2; int pre2 = 1; int ways = 0; for(int i=3; i<=n; i++){ ways = pre1 +pre2; pre2 = pre1; pre1 = ways; } return ways; } }
相关文章推荐
- [LeetCode] Climbing Stairs
- 【LeetCode】Climbing Stairs
- LeetCode-Climbing Stairs
- LeetCode【70】Climbing Stairs
- LeetCode 70 — Climbing Stairs(C++ Java Python)
- [LeetCode] Climbing Stairs, Solution
- Leetcode_num13_Climbing Stairs
- [LeetCode] Climbing Stairs
- leetcode-Climbing Stairs
- 【Leetcode】【python】Climbing Stairs
- LeetCode(70) Climbing Stairs
- LeetCode Climbing Stairs 爬楼梯
- leetcode: Climbing Stairs
- LeetCode:Plus One, Add Binary, Sqrt(x), Climbing Stairs
- LeetCode - 70. Climbing Stairs
- [LeetCode-70] Climbing Stairs
- [leetcode 70]Climbing Stairs
- Leetcode:70. Climbing Stairs
- leetcode先刷_Climbing Stairs
- <LeetCode OJ> 70. Climbing Stairs