leetcode-Climbing Stairs
来源:互联网 发布:网络的利与弊400字 编辑:程序博客网 时间:2024/05/28 04:54
题目描述:
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?
做了半天,就是运行不起来,最后根据结果输出,百度了一下这个数字,发现居然是斐波那契数列中的数,然后根据规律一看,答案果然是斐波那契数列,开始想复杂了,坑爹
上开始写的代码,数超过了int的最大范围,运行不起来
class Solution {public: static int fun(int a,int b) { if(b==0) return 1; long long bigNum=a; int index=1; for(int i=1;i<b;i++) { bigNum=bigNum*(a-i); index=index*(i+1); } return bigNum/index; } int climbStairs(int n) { int index = n%2; int num = n/2; int sum = 0; for(int i=0;i<=num;i++) { if((i*2+index)<(num-i)) { sum=sum+fun(i*2+index+num-i,index+i*2); } else { sum=sum+fun(i*2+index+num-i,num-i); } } return sum; }};为什么是斐波那契数列呢,原因是这样的,如果有n个台阶,那么就等于n-1个台阶走一步或是n-2个台阶走两步,所以是斐波那契数列
class Solution {public: int climbStairs(int n) { if(n<=2) return n; else { int *step=new int[n]; step[0]=1; step[1]=2; for(int i=2;i<n;i++) { step[i]=step[i-1]+step[i-2]; } return step[n-1]; } }};
0 0
- LeetCode: Climbing Stairs
- LeetCode: Climbing Stairs
- [LeetCode]Climbing Stairs
- LeetCode Climbing Stairs
- [Leetcode] Climbing Stairs
- Leetcode: Climbing stairs
- LeetCode Climbing Stairs
- [LeetCode] Climbing Stairs
- leetcode 107: Climbing Stairs
- [LeetCode] Climbing Stairs
- [LeetCode]Climbing Stairs
- [leetcode]Climbing Stairs
- LeetCode-Climbing Stairs
- [leetcode] Climbing Stairs
- LeetCode - Climbing Stairs
- LeetCode:Climbing Stairs
- Leetcode Climbing Stairs
- LeetCode | Climbing Stairs
- 第一范式、第二范式及第三范式的定义与举例 and SQL常用函数集锦
- struts2---校验器
- LINUX下编译安装PROTOBUF
- 移动互联网
- 好玩的图形函数
- leetcode-Climbing Stairs
- C++单例singleton模式_legend
- Linux下高并发socket最大连接数所受的各种限制
- [leetcode] Merge Two Sorted Lists
- 实战:MySQL Sending data导致查询很慢的问题详细分析
- 《HP大中华区总裁孙振耀退休感言》--- 我又读了一遍, 真的非常受益! 朋友, 我推荐给你!
- 图论算法 填充管道
- 模板模式解读
- Nubia Z5S ( 2014.6.14更新12) 中文Recovery TWRP2.7.1.3/真正触摸操作/兼容Z5S所有ROM