动态规划
哈喽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) <= 10000 <= A[i], B[i] < 100来源:力扣(LeetCode)链接:https://leetcode-cn.com原创 2020-07-01 10:31:17 · 339 阅读 · 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 · 311 阅读 · 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 · 291 阅读 · 0 评论 -
leetcode的python实现--(62)不同路径--动态规划
首先简要回顾以下动态规划的特点。动态规划可总结为“一个模型三个特征”。一个模型指的是“多阶段决策最优解模型”,即用动态规划来解决最优问题的过程,需要经历多个决策阶段。每个决策阶段都对应着一组状态。然后我们寻找一组决策序列,经过这组决策序列,能够产生最终期望求解的最优值。三个特征分别是最优子结构、无后效性和重复子问题。1. 最优子结构指的是,问题的最优解包含子问题的最优解,后面阶段的状态可以通过前面阶段的状态推导出来。2. 无后效性有两层含义,第一层含义是,在推导后面阶段的状态的时候,我们只关心前面阶原创 2020-06-25 16:49:47 · 294 阅读 · 0 评论