斐波那契数列 1. 爬楼梯 2. 强盗抢劫 3. 强盗在环形街区抢劫 4. 信件错排 5. 母牛生产 矩阵路径 1. 矩阵的最小路径和 2. 矩阵的 ...
动态规划的本质是递归 所以做题之前一定要会递归 递归式就是状态转移方程 这里将会介绍使用动态规划做题的思维方式。 统一的做题步骤: 爬楼梯 假设你正在爬楼梯。需要 n 步你才能到达楼顶。 每次你可以爬 或 个台阶。你有多少种不同的方法可以爬到楼顶呢 注意:给定 n 是一个正整数。 示例 : 写递归 通常情况下,我们会将问题从大到小处理,也就是这里如果有n个台阶,先处理第n个台阶,然后处理n ,n ...
2018-06-13 15:29 0 1513 推荐指数:
斐波那契数列 1. 爬楼梯 2. 强盗抢劫 3. 强盗在环形街区抢劫 4. 信件错排 5. 母牛生产 矩阵路径 1. 矩阵的最小路径和 2. 矩阵的 ...
因为最近一段时间接触了一些Leetcode上的题目,发现许多题目的解题思路相似,从中其实可以了解某类算法的一些应用场景。 这个随笔系列就是我尝试的分析总结,希望也能给大家一些启发。 动态规划的基本概念 一言以蔽之,动态规划就是将大问题分成小问题,以迭代的方式求解。 可以使用动态规划 ...
一、什么是动态规划 动态规划(dynamic programming)是运筹学的一个分支,是求解决策过程(decision process)最优化的数学方法。把多阶段过程转化为一系列单阶段问题,利用各阶段之间的关系,逐个求解,创立了解决这类过程优化问题的新方法——动态规划。 使用动态规划特征 ...
【动态规划杂记】状态+转移 参考:夜深人静写算法(二) - 动态规划 核心:划分阶段-状态表示-状态转移方程。 复杂度:状态数O(n^t),转移O(n^e),则称为tD/eD问题。 1.最优化问题和方案数问题常考虑DP,特定数问题不考虑DP。 2.断层思想:划分状态,从计算过的状态去答案 ...
动态规划 1.概念 动态规划常用于的一个问题就是求最值, 比如说最常见的求最长递增子序列啊等待。 其实动态规划的问题核心仍然是穷举,想一下求最值,那最可能的就是把所有结果列出来,谁最大要谁。 动态规划大部分是自底向上的,所以也就脱离了递归,更多的是采用for循环的迭代; 动态规划的典型 ...
给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为1000。 示例 1: 示例 2: 自己的思路:求一个字符串的最长回文子串,我们可以将以每个字符为首的子串都遍历一遍,判断是否为回文,如果是回文,再判断最大长度的回文子串。算法简单,但是算法 ...
一、背包问题 1、问题描述 2、引进动态规划表格来解释问题 这个表格中 背包容量:最大值是输入给定, 物品编号:0、表示前0个物品最佳组合; 1、表示前1个物品最佳组合;(所以这里是不是要求物品编号有一定的顺序??) 2、表示前2个物品最佳组合; 空白 ...