动态规划
这里简要介绍动态规划中的一些问题以及他们的解法
dos diosas
这个作者很懒,什么都没留下…
展开
-
004.LeetCode:53. 最大子序和-- 动态规划解法
class Solution {public: int maxSubArray(vector<int>& nums) { vector<int> dp(nums.size(),0); dp[0]=nums[0]; int max_res=dp[0]; for(int i=1;i<nums.size();i++) { dp[i]=max(dp[i-1]+num原创 2020-06-20 11:45:51 · 109 阅读 · 0 评论 -
003.LeetCode:70. 爬楼梯
解决方案代码如下class Solution {public: int climbStairs(int n) { vector<int>dp(n+3,0); dp[1]=1; dp[2]=2; for(int i=3;i<=n;i++) { dp[i]=dp[i-1]+dp[i-2]; } return dp[n]; }};..原创 2020-06-20 09:23:21 · 76 阅读 · 0 评论 -
002.关于LeetCode70号问题的几种解法
①记忆化搜索:使用数组记录每一次生成的中间结果,减少重复计算次数class Solution {public: vector<int>memo;//记忆化搜索辅助数组 int calcWays(int n) { if(n==0||n==1) { return 1; } if(memo[n]==-1) { memo[n]=calcWays(n-原创 2020-06-08 16:36:26 · 87 阅读 · 0 评论 -
001.记忆化搜索实例,计算第K个斐波那契数
#include<iostream>#include<vector>#include<ctime>using namespace std;vector<int> memo;int num = 0;//计算递归调用次数//记忆化搜索int fib(int n){ num++; if (n == 0) { return 0; } if (n == 1) { return 1; } if (memo[n] == -原创 2020-06-08 16:04:32 · 129 阅读 · 0 评论