标签:style blog io color sp for on div 问题
递归法(TLE代码):
1 class Solution { 2 public: 3 int climbStairs(int n) { 4 if(n==0) 5 return 1; 6 if(n<0) 7 return 0; 8 return (climbStairs(n-1)+climbStairs(n-2)); 9 } 10 };
动态规划法:
1 class Solution { 2 public: 3 int climbStairs(int n) { 4 if(n==1) return 1; 5 if(n==2) return 2; 6 int a=1,b=2,c=0,i; 7 for( i=0;i<n-2 ;i++ ){ 8 c=a+b; 9 a=b; 10 b=c; 11 } 12 return c; 13 } 14 };
题意:爬楼梯,给出一条楼梯的阶数,每次可以走1步,或者两步一起走,那么就有两种走法走完这n阶。问有多少种走法走完这楼梯,返回它。
思路:当n=1时,返回1;当n=2时,返回2。当n>3时,要返回的是n-1和n-2所要返回的数。比如n=3,那么就返回1+2的值,n=4,返回3+2。类推下去。
吐槽:原来很困惑这个问题,用递归写了一下,发现不行,虽然代码很简单。之后考虑各种方法,再用此递归法计算一下各个返回值,发现了规律,原来如此。~
标签:style blog io color sp for on div 问题
原文地址:http://www.cnblogs.com/xcw0754/p/4119384.html