题目介绍
假设你正在爬楼梯。需要n阶你才能到达楼顶。
每次你可以爬1或2个台阶。你有多少种不同的方法可以爬到楼顶呢?
提示:
1 <= n <= 45
原题链接:
70. 爬楼梯 - 力扣(LeetCode)
完整参考代码:
class Solution { public: void dfs(int n,int& way,vector<int>& memo) { if(n < 0) return; if(n == 0) { way++; return; } if(memo[n]!=-1) { way += memo[n]; return; } int tmp = way; dfs(n-2,way,memo); dfs(n-1,way,memo); memo[n] = way - tmp; } int climbStairs(int n) { int way = 0; vector<int> memo(n+1,-1); dfs(n,way,memo); return way; } };不好意思,等待的各位(今天想要给出解析是不可能了,但是我并非恶意拖更(鞠躬)
你看我都准备好了自己的解法,就待和大家分享
痛定思痛,我会今天写两篇解析,明天再补一篇。
估计明天都得超过晚上12点才能更新出完整三篇,至于原因,我会再第三篇告诉大家