
算法-动态规划
Susceptible0506
这个作者很懒,什么都没留下…
展开
-
区间DP解LeetCode 5 最长回文子串
5. 最长回文子串给定一个字符串s,找到s中最长的回文子串。你可以假设s的最大长度为 1000。示例 1:输入: "babad"输出: "bab"注意: "aba" 也是一个有效答案。示例 2:输入: "cbbd"输出: "bb"思路:区间DP如果一个问题能够先计算小区间,再从小区间枚举到大区间,就可以使用区间DP在这道题中,我们可以使用一个二维数组,存储字符串区间是否是回文串dp[i,j]代表s[i....j]是否是回文那么状态转移就是:如...原创 2020-05-26 15:19:44 · 195 阅读 · 0 评论 -
什么情况下,使用记忆化搜索比动态规划更加方便???
动态规划是自底向上的,先处理子问题,然后再处理更大的问题。这样就需要知道子问题和更大的问题之间的联系。我们能够确定出子问题并且能够正确的求解它,从而从子问题推出要解决的问题的解。但是,如果当我们比较难确定出子问题是哪一个,比较困难的求出子问题的答案时,可以使用记忆化搜索以洛谷上的滑雪题为例对于这道题,我们没办法马上到达某个点的最长长度因此我们需要使用递归方法,并且使用记忆化搜索来进行优化思路使用递归计算出,到x,y点的最长滑坡长度遍历点(x,y)的上下左右四个点,如果一.原创 2020-05-19 16:59:39 · 347 阅读 · 0 评论 -
动态规划 0-1背包问题及优化
动态规划解0-1背包问题过程:依次计算数组中的每一个值:当容量C超过了当前物品的重量时,说明当前物品可以放入背包中,那么就要考虑是否将该物品放入背包中,如果放入背包中,当前背包的总价值就为memo[i-1][j-w[i]]+v[i],如果不放入背包中,当前背包的总价值就为memo[i-1][j],使用这两种情况的最大值更新数组数据代码:#include <iostream>#include <vector>using namespace ...原创 2020-05-19 16:48:55 · 1061 阅读 · 0 评论 -
动态规划 状态的定义和状态转移 Leetcode198&213
在解动态规划题目的时候,我们要确定状态的定义和状态转移Leetcode198 打家劫舍题目你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最高金额。示例 1:输入: [1,2,3,1]输出: 4解释: 偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号原创 2020-05-19 16:32:01 · 880 阅读 · 0 评论 -
动态规划之发现重叠子问题 LeetCode 343 整数拆分
当遇到一个问题,想要使用动态规划的基础是发现重叠子问题以LeetCode 343 整数拆分 这道题为例题目给定一个正整数 n,将其拆分为至少两个正整数的和,并使这些整数的乘积最大化。 返回你可以获得的最大乘积。示例 1:输入: 2输出: 1解释: 2 = 1 + 1, 1 × 1 = 1。示例 2:输入: 10输出: 36解释: 10 = 3 + 3 + 4, 3 × 3 × 4 = 36。说明: 你可以假设 n 不小于 2 且不大于 58。思路我们解这道题,可以使用递原创 2020-05-19 15:38:18 · 412 阅读 · 0 评论 -
动态规划 LeetCode 70&120&64&279&300&322
LeetCode 70 爬楼梯题目假设你正在爬楼梯。需要 n阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1. 1 阶 + 1 阶2. 2 阶思路F(n)=F(n-1)+F(n-2) 斐波那契数列的应用代码#include <iostream>#include <vector>using namespace s..原创 2020-05-19 15:31:49 · 124 阅读 · 0 评论 -
从斐波那契数列引入动态规划
斐波那契数列定义 F(0)=1,F(1)=1,F(n)=F(n-1)+F(n-2) 求F(n)解法1:递归#include <iostream>using namespace std;int fib(int n){ if(n==0) return 0; if(n==1) return 1; return fib(n-1)+fib(n-2);}int main(){ cout<<fib(40)<<...原创 2020-05-19 15:06:41 · 297 阅读 · 0 评论