LeetCode练题笔记

一、动态规划
(一)动态规划是由子问题逐步推导出最终问题解的一种解题思想。动态规划一般由以下几部分组成:
1. 确定状态
2. 状态转移方程
3. 初始值和边界条件
4. 计算顺序,f[0]—>f[n] or f[n-1]
(二)动态规划常见的有以下几种类型:
1.序列型
2.坐标型
3.划分型和区间型
4.博弈型
5.背包型
1)其中背包类型又可划分为:0-1背包、完全背包、组合背包和分组背包。在0-1背包问题中,每个元素最多被选取一次;在完全背包问题中,每个元素可以被重复选择;在组合背包问题中,背包中物品的顺序需要被考虑;在分组背包中,存在不止一个背包,需要对每个背包进行遍历。
2)对于序列型和坐标型问题,需要考虑加入序列的最后一个值。在序列型问题中,通常在有些题目中需要设置状态维,如题目、入室抢劫、粉刷房子、四类股票问题。对于划分型题目,需要考虑最后一段的长度(j~i),比如题目划分回文串和题目解码。
3)对于博弈型题目,需要注意的是,在确定状态时是从前往后的。如必胜态和必败态,每一步都假设当前选手是先手,若下一步无论如何都是必胜态,则当前的选手必败,否则必胜。
下面将对上述类型的动态规划,做详细的总结,以便此后的学习和职业发展。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值