目录 定义 动态规划的步骤 例题分析 算法对比 总结 一、定义 1.1 定义 把多阶段过程转化为一系列单阶段问题,利用各阶段之间的关系,逐个求解,创立了解决这类过程优化问题的新方法——动态规划 --百度定义 动态规划算法(Dynamic Programming-DP)是通过拆分问题,定义问题状态和状... ...
分类:
编程语言 时间:
2020-05-23 09:37:49
阅读次数:
65
题目大意是给三个字符串,问前两个字符串进行交错是否可以组成第三个字符串。我的思路就是用动态规划来做,用一个数组dp[i][j]表示匹配s3前i+1个字符时,用了j个s1的字符,s2可以推倒出来是用了i+1 j个字符,所以不用再开一维,两维就够了,第一次做多开了一维,时间和空间消耗都很大。更新dp数组 ...
分类:
其他好文 时间:
2020-05-22 19:29:17
阅读次数:
49
最大回文子串匹配:暴力算法、中心拓展法、动态规划、manacher算法的理解和python实现 ...
分类:
编程语言 时间:
2020-05-21 13:22:07
阅读次数:
57
打家劫舍 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统, 如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警 。 给定一个代表每个房屋存放金额的非负整数数组,计算你 在不触动警报装置的情况下, 能够偷窃到的最高金额 ...
分类:
其他好文 时间:
2020-05-20 21:40:18
阅读次数:
54
1. 动态规划 1. 三要素:定义状态,分解子问题(找到迭代公式),设置边界条件 2. 三种解题思路: 1. Brutal Force Search 2. Top Down(回溯+剪枝) 3. Bottom Up(memorization) 2. 解题模板 2.1 题目定义 1. $v[i]$ 第i ...
分类:
其他好文 时间:
2020-05-20 14:01:20
阅读次数:
69
题目:我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 比如n=3时,2*3的矩形块有3种覆盖方法: 代码: 1 //动态规划实现 2 class Solution { 3 public: 4 int rectCover ...
分类:
其他好文 时间:
2020-05-19 20:12:01
阅读次数:
47
题目:一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 代码: 1 //动态规划版 2 class Solution { 3 public: 4 int jumpFloorII(int number) { 5 if( number == ...
分类:
其他好文 时间:
2020-05-19 14:33:48
阅读次数:
43
题目:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。 代码: 1 // 动态规划版 2 class Solution { 3 public: 4 int jumpFloor(int number) { 5 if( number ...
分类:
其他好文 时间:
2020-05-19 14:29:03
阅读次数:
48
一、算法定义 假设当你正在使用适当的输入数据进行一些计算。你在每个实例中都进行了一些计算,以便得到一些结果。当你提供相同的输入时,你不知道会有相同的输出,这就导致了你之前计算某些结果的宝贵时间被浪费掉了。你可以通过保存之前的计算结果去轻易地解决这个问题。比如通过使用恰当的数据结构等。 现在通过分析这 ...
分类:
编程语言 时间:
2020-05-19 14:13:27
阅读次数:
61
Description: https://gmoj.net/senior/ main/show/5728 题解: 考虑不是环上怎么做: 预处理$f[i][j]$表示i个分成j段,段与段之间有序,且乘上的了段的大小,这样的所有方案权值和。 考虑,现在相当于有第i个颜色有$b[i]$段,把这些合并,是的 ...
分类:
其他好文 时间:
2020-05-18 20:27:38
阅读次数:
54