題面70. 爬樓梯 - 力扣(LeetCode)
題解:極其經典的一道動態規劃,比如要跳到10樓有f(10)種方法,可以分為1、先跳到9樓再往上跳1樓 2、先跳到8樓再往上跳2樓,所以f(10)=f(8)+f(9),昨天覆習了雜湊表,所以用雜湊練習一下。
class Solution { public: int climbStairs(int n) { unordered_map<int,int> umap; umap.insert({1,1}); umap.insert({2,2}); for(int i=3; i <= 45; i++) { umap.insert({i,umap[i-1]+umap[i-2]}); } return umap[n]; } };