【LeetCode】70 - Climbing Stairs
生活随笔
收集整理的這篇文章主要介紹了
【LeetCode】70 - 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??
Hide Tags:?Dynamic Programming Solution:一個臺階的方法次數為1次,兩個臺階的方法次數為2個。n個臺階的方法可以理解成上n-2個臺階,然后2步直接上最后一步;或者上n-1個臺階,再單獨上一步 1 int climbStairs(int n) { //Runtime:0ms 2 int a=1,b=2; 3 if(n==1)return a; 4 if(n==2)return b; 5 int c=0; 6 for(int i=3;i<=n;i++){ 7 c=a+b; 8 a=b; 9 b=c; 10 } 11 return c; 12 } 13 int climbStairs2(int n){ ////Runtime:0ms 14 if(n <= 2)return n; 15 int* step = new int[n]; 16 step[0] = 1; 17 step[1] = 2; 18 for(int i = 2; i < n; i++)step[i] = step[i-1] + step[i-2]; 19 return step[n-1]; 20 }?
轉載于:https://www.cnblogs.com/irun/p/4678884.html
總結
以上是生活随笔為你收集整理的【LeetCode】70 - Climbing Stairs的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【算法学习笔记】83.排序辅助 动态规划
- 下一篇: [考试]20150528