leetcode 70 爬楼梯
Posted Joel_Wang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode 70 爬楼梯相关的知识,希望对你有一定的参考价值。
用阶乘公式算数字越界了,的确进行了一些不必要的计算,代码贴着留个纪念,局限:能进行小数字的计算
C++:
1 class Solution { 2 public: 3 int climbStairs(int n) { 4 int res=1,i=1; 5 while(n>1){ 6 n=n-2; 7 int m=n+i; 8 int temp=tm(m)/(tm(i)*tm(m-i)); 9 res+=temp; 10 i++; 11 } 12 return res; 13 } 14 int tm(int n){ 15 if(n==0) return 1; 16 return n*tm(n-1); 17 } 18 };
卧槽我怎么没想到爬楼梯问题就是斐波那契数列,那就用递归,为了降低复杂度也就是使用记忆化搜索,也就是动态规划的方法,写出状态转移方程,降低空间复杂度
python方法:直接从头计算斐波那契数列
class Solution(object): def climbStairs(self, n): """ :type n: int :rtype: int """ #空间复杂度2,时间复杂度n a=0 b=1 for i in range(n): a,b=b,a+b return b
以上是关于leetcode 70 爬楼梯的主要内容,如果未能解决你的问题,请参考以下文章