![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
动态规划
哈喽2020
这个作者很懒,什么都没留下…
展开
-
leetcode的python实现-718. 最长重复子数组
leetcode的python实现-718. 最长重复子数组 题目描述 给两个整数数组 A 和 B ,返回两个数组中公共的、长度最长的子数组的长度。 示例 1: 输入: A: [1,2,3,2,1] B: [3,2,1,4,7] 输出: 3 解释: 长度最长的公共子数组是 [3, 2, 1]。 说明: 1 <= len(A), len(B) <= 1000 0 <= A[i], B[i] < 100 来源:力扣(LeetCode) 链接:https://leetcode-cn.com原创 2020-07-01 10:31:17 · 332 阅读 · 0 评论 -
leetcode的python实现--(64)最小路径和--动态规划
动态规划的一个模型三个特征的特点: leetcode-(64)最小路径和 题目描述 给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。 说明:每次只能向下或者向右移动一步。 示例输入: [ [1,3,1], [1,5,1], [4,2,1]] 输出: 7 解释: 因为路径 1→3→1→1→1 的总和最小。 思路 因为只能向右或者向下移动,要走到走到在第i行第j列的网格,必须是从第i-1行第j列的网格或者第i行第j-1列的网格移动过来,假设二维数组dp[原创 2020-06-25 16:56:04 · 298 阅读 · 0 评论 -
leetcode的python实现--(63)不同路径 II--动态规划
leetcode-(63)不同路径 II 题目描述 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径? 网格中的障碍物和空位置分别用 1 和 0 来表示。 说明:m 和 n 的值均不超过 100。 示例 1: 输入: [ [0,0,0], [0,1,0], [0,0,0] ] 输出: 2 解释: 3x3 网格的原创 2020-06-25 16:54:26 · 263 阅读 · 0 评论 -
leetcode的python实现--(62)不同路径--动态规划
首先简要回顾以下动态规划的特点。动态规划可总结为“一个模型三个特征”。 一个模型指的是“多阶段决策最优解模型”,即用动态规划来解决最优问题的过程,需要经历多个决策阶段。每个决策阶段都对应着一组状态。然后我们寻找一组决策序列,经过这组决策序列,能够产生最终期望求解的最优值。 三个特征分别是最优子结构、无后效性和重复子问题。 1. 最优子结构指的是,问题的最优解包含子问题的最优解,后面阶段的状态可以通过前面阶段的状态推导出来。 2. 无后效性有两层含义,第一层含义是,在推导后面阶段的状态的时候,我们只关心前面阶原创 2020-06-25 16:49:47 · 282 阅读 · 0 评论