给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。 说明:每次只能向下或者向右移动一步。 示例: 输入:[ [1,3,1], [1,5,1], [4,2,1]]输出: 7解释: 因为路径 1→3→1→1→1 的总和最小。 解:这题也是动态规划,和 ...
分类:
其他好文 时间:
2020-03-13 23:27:03
阅读次数:
95
Q:给出一个字符串s,分割s使得分割出的每一个子串都是回文串 计算将字符串s分割成回文分割结果的最小切割数 例如:给定字符串s="aab", 返回1,因为回文分割结果["aa","b"]是切割一次生成的。 A: 动态规划问题。 cut[i] 表示子串(0,i)的最小回文切割,则最优解在cut[s.l ...
分类:
其他好文 时间:
2020-03-13 18:59:48
阅读次数:
57
动态规划 分析流程 递推(递归+记忆化) 状态定义 状态转移方程 最优子结构 爬楼梯 题目来源 "LeetCode 70. Climbing Stairs" 解题思路 方法一 定义状态 表示n阶台阶的总走法数,则状态方程为 精简解题 题目 给你一个数组,第i个元素代表某个股票第i天的价格,现在只允许 ...
分类:
其他好文 时间:
2020-03-13 14:35:18
阅读次数:
57
上一篇博客写了分治解法以及为什么要用分治。 分治通过我们对子问题的定义,实例化了我们每一步计算的语义,从而帮助我们找到解空间中的重复结构。 在进行分治时,我们找到了分割问题,并用子问题的解表示问题解的方式,也就是状态转移方程: 整个分治的计算过程分为两个阶段,向下分割问题,向上汇聚子问题的解从而得到 ...
分类:
其他好文 时间:
2020-03-13 01:20:44
阅读次数:
64
dp的基本思想,是把大问题转化成一个个小问题,然后递归解决。 所以本质思想的话还是递归。 dp最重要的是要找到状态转移方程,也就是把大问题化解的过程。 举个例子 一个数字金字塔 1 1 2 2 3 3 2 2 2 4 3 1 3 3 在上面的数字三角形中寻找一条从顶部到底边的路径,使得路径上所经过的 ...
分类:
其他好文 时间:
2020-03-12 20:27:04
阅读次数:
48
动态规划 动态规划 (dynamic programming):它是把研究的问题分成若干个阶段,且在 每一个阶段 都要“动态地”做出决策,从而使整个阶段都要取得最优效果。 理解: 其实,无非就是利用 历史记录 ,来避免我们的重复计算。 而这些历史记录,我们得需要一些变量来保存,一般是用 一维数组 或 ...
分类:
编程语言 时间:
2020-03-12 18:43:02
阅读次数:
74
题目描述 在有向无环图上给你两个起点和终点分别为a,b,c,d。问有几种路径方案使得能从a走到b的同时能从c走到d,且两个路径没有交点。 1<=n<=200,1<=m<=5000。 经过了深刻地思考,你会发现,由于这是一个DAG图,我们可以将其转化为动态规划来做,同时我们先要将图建立成一个拓扑图。 ...
分类:
编程语言 时间:
2020-03-12 15:48:07
阅读次数:
77
题目描述 上周的题目中我们知道,骑士之间彼此存在爱慕。其实作为一名有情有义的骑士,往往都有真爱的异性。现在有两个骑士,他们不幸爱上了同一个异性,爱之深,恨之切,他们因此非常厌恶自己的情敌。他们不共戴天,不愿意和对方有所瓜葛。 现在他们各自被要求执行一个任务,分别是从城a1到a2,从城b1到b2,他们 ...
分类:
编程语言 时间:
2020-03-12 10:12:00
阅读次数:
97
LeetCode 0188. Best Time to Buy and Sell Stock IV买卖股票的最佳时机 IV【Hard】【Python】【动态规划】 Problem "LeetCode" Say you have an array for which the i th element ...
分类:
编程语言 时间:
2020-03-11 23:29:06
阅读次数:
89
LeetCode 0123. Best Time to Buy and Sell Stock III买卖股票的最佳时机 III【Hard】【Python】【动态规划】 Problem "LeetCode" Say you have an array for which the i th elemen ...
分类:
编程语言 时间:
2020-03-11 22:12:10
阅读次数:
77