Loading

摘要: 背包问题 1 01背包和完全背包问题 01背包问题 有N件物品和一个容量为V的背包,第i件物品的体积是v[i]、价值是w[i],每种物品只可以使用一次,求将哪些物品放入背包可以使得价值总和最大。这里的w是weight即权重的意思 这是最基础的背包问题,"01"就是指每种物品要么选要么不选,我们定义状 阅读全文
posted @ 2023-05-05 20:32 空無一悟 阅读(102) 评论(0) 推荐(0) 编辑
摘要: 线性DP的力扣题目练习 这一章将会介绍线性动态规划的相关概念和经典问题,并给出一些练习题供大家演练。 用动态规划解决问题的过程有以下几个关键点:状态定义,状态的转移,初始化和边界条件。 状态定义 就是定义子问题,如何表示目标规模的问题和更小规模的问题。例如常见的方法:定义状态 dp[n],表示规模为 阅读全文
posted @ 2023-05-04 23:47 空無一悟 阅读(33) 评论(0) 推荐(0) 编辑
摘要: 线性模型与区间DP 1 线性模型 基本概念 这里的线性是指状态的排布是线性的 线性模型是动态规划中最常用的模型 一般的代码模型是: for(int i = 0; i < n; i++) { for(j = 0; j < i; j++) { // Todo: 更新dp的具体逻辑 } } 最典型的一个例 阅读全文
posted @ 2023-05-03 22:11 空無一悟 阅读(32) 评论(0) 推荐(0) 编辑
摘要: 动态规划简介 1 动态规划的基本概念 阶段、状态、决策、策略、状态转移方程 1) 阶段和阶段变量 将问题的全过程恰当地分成若干个相互联系的阶段闫氏DP分析法:对应f[i][j]的ij遍历时形成的所有f[i][j] 阶段的划分一般根据时间和空间的自然特征去划分 阶段的划分便于把问题转化成多阶段决策问题 阅读全文
posted @ 2023-05-02 23:51 空無一悟 阅读(289) 评论(0) 推荐(0) 编辑
摘要: 2023-04-29 动态规划介绍 动态规划是运筹学课程的一部分 多阶段决策问题 有一类活动的过程,可以分成若干个互相联系的阶段,在它的每一阶段都需要作出决策,从而使整个过程达到最好的活动效果 当然,每个阶段的决策的选取不是任意确定的,它依赖于当前的状态,又会影响以后的发展 如下图,①、②...n这 阅读全文
posted @ 2023-04-29 19:48 空無一悟 阅读(29) 评论(0) 推荐(0) 编辑
摘要: LeetCode精选题目20道 1.56.合并区间 贪心 给出一个区间的集合,请合并所有重叠的区间。 示例 1: 输入: intervals = [[1,3],[2,6],[8,10],[15,18]] 输出: [[1,6],[8,10],[15,18]] 解释: 区间 [1,3] 和 [2,6] 阅读全文
posted @ 2023-04-28 20:37 空無一悟 阅读(24) 评论(0) 推荐(0) 编辑
摘要: 2023-04-26 力扣LeetCode上的DP动态规划问题分类汇总 1、线性 DP 最经典单串: 300. 最长上升子序列 最经典双串: 1143. 最长公共子序列 经典问题: 120. 三角形最小路径和 53. 最大子序和 152. 乘积最大子数组 887. 鸡蛋掉落(DP+二分) 354. 阅读全文
posted @ 2023-04-26 22:57 空無一悟 阅读(57) 评论(0) 推荐(0) 编辑
摘要: 贪心算法 1 贪心选择例题 455.饼干分配 假设你想给小朋友们饼干。每个小朋友最多能够给一块儿饼干。每个小朋友都有一个“贪心指数”,称为g(i),g(i)表示的是这名小朋友需要的饼干大小的最小值。同时,每个饼干都有一个大小值s(i)。如果s(j) >= g(i),我们将饼干j分给小朋友i后,小朋友 阅读全文
posted @ 2023-04-24 23:23 空無一悟 阅读(39) 评论(0) 推荐(0) 编辑
摘要: 动态规划 1 什么是动态规划 以菲波那切数列求和为例,通过 1.普通的递归 2.引入记忆数组memo 3.自下而上地解决问题,即动态规划 动态规划的定义 dynamic programming (also known as dynamic optimization) is a method for 阅读全文
posted @ 2023-04-23 21:41 空無一悟 阅读(48) 评论(0) 推荐(0) 编辑
摘要: 递归和回溯 0 递归与回溯的异同 参考文章 递归与回溯 递归与回溯的理解 回溯和递归区别 比较 | | 递归 | 回溯 | | | | | | 定义 | 为了描述问题的某一状态,必须用到该状态的上一状态,而描述上一状态,又必须用到上一状态的上一状态……这种用自已来定义自己的方法,称为递归定义。形式如 阅读全文
posted @ 2023-04-19 23:47 空無一悟 阅读(29) 评论(0) 推荐(0) 编辑