70.爬楼梯
作者:互联网
1.Go
//递归 :达到n级楼梯,最后一步要么走1步,要么走2步
走一步时,方法数值f(n-1) 走两步时f(n-2) 这样会超时
方法1:记忆化搜索(借助数组储存数值)
//用哈希或者数组都可以 但是数组更快
func climbStairs(n int) int { //dic:=make(map[int]int,500) dic:=make([]int,500) dic[1]=1 dic[2]=2 for i:=3;i<=n;i++{ dic[i]=dic[i-1]+dic[i-2] } return dic[n] }
2.C++
1.递归 会超时 你相当于每次都有计算n前面数值
class Solution { public: int climbStairs(int n) { if(n==1) return 1; if(n==2) return 2; return climbStairs(n-1)+climbStairs(n-2); } };
2. 记忆化搜索(借助数组储存数值)
class Solution { public: int array[500]; int climbStairs(int n) { array[1]=1; array[2]=2; for (int i=3;i<=n;i++){ array[i]=array[i-1]+array[i-2]; } return array[n]; } };
标签:return,int,dic,climbStairs,70,爬楼梯,array,500 来源: https://www.cnblogs.com/wustjq/p/15754614.html