70. 爬楼梯
1 class Solution 2 { 3 public: 4 int climbStairs(int n) 5 { 6 vector<int> nums(n + 10); 7 nums[1] = 1; 8 nums[2] = 2; 9 for(int i = 3;i <= n;i ++) nums[i] = nums[i - 1] + nums[i - 2]; 10 return nums[n]; 11 } 12 };
递归+备忘录
1 class Solution 2 { 3 vector<int> memo; 4 public: 5 int climbStairs(int n) 6 { 7 memo = vector<int>(n + 1,-1); 8 return DFS(n); 9 } 10 11 int DFS(int n) 12 { 13 if(memo[n] != -1) return memo[n]; 14 if(n == 1 || n == 2) return n; 15 memo[n] = DFS(n - 1) + DFS(n - 2); 16 return memo[n]; 17 } 18 };
Mamba never out

浙公网安备 33010602011771号