力扣爬楼梯c++哈希
时间: 2023-11-18 13:53:48 浏览: 114
C#爬楼梯代码
好的,关于力扣爬楼梯问题,可以使用哈希表来优化时间复杂度。具体思路是,用哈希表记录每个阶梯对应的爬楼梯方法数,避免重复计算。以下是C++代码实现:
```c++
class Solution {
public:
int climbStairs(int n) {
unordered_map<int, int> memo;
return helper(n, memo);
}
int helper(int n, unordered_map<int, int>& memo) {
if (n == 1) return 1;
if (n == 2) return 2;
if (memo.count(n)) return memo[n];
int res = helper(n-1, memo) + helper(n-2, memo);
memo[n] = res;
return res;
}
};
```
其中,helper函数用于递归计算爬楼梯方法数,memo用于记录已经计算过的阶梯对应的方法数。
阅读全文