【LeetCode】Climbing Stairs
2014-03-12 22:20
281 查看
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?
Bad solution↓
1:sum类型为long long,最大值9223372036854775807
2:除的操作在运算中途就进行
此题是一个斐波那契数列,利用递归,迭代及公式法可以求解。
Each time you can either climb 1 or 2 steps. In how many distinct ways can you climb to the top?
Bad solution↓
class Solution { public: int climbStairs(int n) { int ways = 0; int x = 0; int y = 0; for(int i = 0; i <= n; i++) { x = i; if( (n-x) % 2 == 0) { y = (n-x) / 2; if(x == 0 || y == 0) ways++; else { int tmp = x+y; long long sum = 1; int cnt = 0; int minVal = x > y?y:x; while(cnt < minVal) { sum *= tmp; tmp--; cnt++; if(cnt <= minVal) { sum /= cnt; } } ways += sum; } } } return ways; } };此题有排列组合运算,为了防止溢出:
1:sum类型为long long,最大值9223372036854775807
2:除的操作在运算中途就进行
此题是一个斐波那契数列,利用递归,迭代及公式法可以求解。
相关文章推荐
- 【leetcode】Climbing Stairs
- LeetCode 70. Climbing Stairs
- LeetCode: Climbing Stairs
- leetcode-climbing stairs
- [Leetcode] Climbing Stairs
- 【LeetCode练习题】Climbing Stairs
- Leetcode 70 Climbing Stairs
- [leetcode]Climbing Stairs(爬楼梯 C语言)
- LeetCode -- 70. Climbing Stairs
- leetcode - Climbing Stairs
- leetcode:Climbing Stairs
- [LeetCode][Java] Climbing Stairs
- LeetCode -- Climbing Stairs
- [LeetCode]Climbing Stairs(Java)
- [LeetCode-70] Climbing Stairs
- <LeetCode OJ> 70. Climbing Stairs
- LeetCode 70 Climbing Stairs (递推)
- [leetcode]Climbing Stairs
- [LeetCode] Climbing Stairs
- 【九度】题目1388:跳台阶 && 【LeetCode】Climbing Stairs