【LeetCode】Climbing Stairs
来源:互联网 发布:plc编程基础知识 编辑:程序博客网 时间:2024/06/17 18: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?
解答方法一:可用递归思想, 但太慢了,时间复杂度:O(2^lgn),当n逐渐变大时,时间呈指数增长
int climbStairsRecur(int n){if(n==1) return 1;if(n==2) return 2;return climbStairsRecur(n-1)+climbStairsRecur(n-2);}
方法二:使用动态规划法填表,时间复杂度:O(n)
public class Solution { public static int climbStairs(int n) { int[] data=new int[n+1]; data[0]=0; data[1]=1; if(n>=2){ data[2]=2; } for(int i=3;i<=n;i++){ data[i]=data[i-1]+data[i-2]; } return data[n]; }}
直接用变量存储
int climbStairs(int n){if(n<4) return n;int a=2,b=3,c=5;for(int i=5;i<=n;i++){a=c; //此处a只是作为变量c=b+c;b=a; }return c;}
---EOF---
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
- pySerial -- Python的串口通讯模块
- NOJ [1293] Porter Cai
- 年龄大了还可以学习编程吗
- oracle归档日志
- 【1】Maven安装
- 【LeetCode】Climbing Stairs
- Add Two Numbers
- Color Me Less
- oracle去掉字符串中所有指定字符
- DOC转PDF的vbs脚本
- KinectBridgeWithOpenCVBasics D2D C++ Sample
- 100个windows平台C++开发错误之Warning
- 精益人力
- springMVC利用json传数据到前台(二)