leetcode-70 Climbing Stairs
2016-11-05 17:28
453 查看
问题描述
地址:https://leetcode.com/problems/climbing-stairs/描述:
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步可以到达顶端。每一次可以爬1步或者2步。问:有多少种方式可以到达顶端?
问题解析
这个题目是一个斐波那契数列题。n为台阶数,R为到达第n台阶可用的步数(1)当n=1时, R=1
(2)当n=2时, R=2 ;按照(1,1)(2)走
(3)档n=3时, R=3;按照(1,1,1)(1,2)(2,1)走
到达第n个台阶可以有两种方式:
到达第n-1个台阶,然后一步到达第n个台阶
到达第n-2个台阶,然后直接两步到达第n个台阶(注意此时虽然也可以先一步到达n-1位置,但是这种情况已经包含在1中了)
解析代码
下面给出递归和非递归两种解析代码public class ClimbingStairs { public static void main(String[] args) { System.out.println(climbStairs1(5)); System.out.println(climbStairs(5)); } public static int climbStairs(int n) { if(n ==1){ return 1; } if(n ==2){ return 2; } int[] array = new int ; array[0]=1; array[1] =2; for(int i =2 ; i < n ; i++){ array[i] = array[i-1] + array[i-2]; } return array[n-1]; } public static int climbStairs1(int n) { if(n ==1){ return 1; } if(n ==2){ return 2; } return climbStairs1(n-1) + climbStairs1(n-2); } }
相关文章推荐
- LeetCode 70 Climbing Stairs(爬楼梯)(动态规划)(*)
- LeetCode70 Climbing Stairs
- LeetCode-70 climbing stairs(方法大总结)
- LeetCode 70 Climbing Stairs
- LeetCode 70 Climbing Stairs(记忆化搜索)
- (java)leetcode-70:Climbing Stairs
- [LeetCode]70 Climbing Stairs
- LeetCode-70-Climbing Stairs(动态规划)-Easy
- LeetCode70——Climbing Stairs
- LeetCode 70:Climbing Stairs
- [Leetcode 70, easy] Climbing Stairs
- Java [Leetcode 70]Climbing Stairs
- [leetcode 70]Climbing Stairs
- LeetCode70 Climbing Stairs
- LeetCode 70 Climbing Stairs--Python实现
- LeetCode70 Climbing Stairs
- 【LEETCODE】70-Climbing Stairs
- [Leetcode 29] 70 Climbing Stairs
- Climbing Stairs | leetcode 70 【Java解题报告】
- leetcode-70-Climbing Stairs