mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-13 22:35:09 +08:00
更新 背包理论基础 排版格式修复
This commit is contained in:
@ -8,8 +8,11 @@
|
||||
|
||||
# 动态规划:01背包理论基础
|
||||
|
||||
## 算法公开课
|
||||
|
||||
**《代码随想录》算法视频公开课:[带你学透0-1背包问题!](https://www.bilibili.com/video/BV1cg411g7Y6/),相信结合视频再看本篇题解,更有助于大家对本题的理解**。
|
||||
**[《代码随想录》算法视频公开课](https://programmercarl.com/other/gongkaike.html):[带你学透0-1背包问题!](https://www.bilibili.com/video/BV1cg411g7Y6/),相信结合视频再看本篇题解,更有助于大家对本题的理解**。
|
||||
|
||||
## 思路
|
||||
|
||||
|
||||
这周我们正式开始讲解背包问题!
|
||||
@ -37,7 +40,7 @@ leetcode上没有纯01背包的问题,都是01背包应用方面的题目,
|
||||
|
||||
之前可能有些录友已经可以熟练写出背包了,但只要把这个文章仔细看完,相信你会意外收获!
|
||||
|
||||
## 01 背包
|
||||
### 01 背包
|
||||
|
||||
有n件物品和一个最多能背重量为w 的背包。第i件物品的重量是weight[i],得到的价值是value[i] 。**每件物品只能用一次**,求解将哪些物品装入背包里物品价值总和最大。
|
||||
|
||||
@ -67,7 +70,7 @@ leetcode上没有纯01背包的问题,都是01背包应用方面的题目,
|
||||
|
||||
以下讲解和图示中出现的数字都是以这个例子为例。
|
||||
|
||||
## 二维dp数组01背包
|
||||
### 二维dp数组01背包
|
||||
|
||||
依然动规五部曲分析一波。
|
||||
|
||||
@ -226,9 +229,6 @@ dp[i-1][j]和dp[i - 1][j - weight[i]] 都在dp[i][j]的左上角方向(包括
|
||||
|
||||
主要就是自己没有动手推导一下dp数组的演变过程,如果推导明白了,代码写出来就算有问题,只要把dp数组打印出来,对比一下和自己推导的有什么差异,很快就可以发现问题了。
|
||||
|
||||
|
||||
## 完整c++测试代码
|
||||
|
||||
```cpp
|
||||
void test_2_wei_bag_problem1() {
|
||||
vector<int> weight = {1, 3, 4};
|
||||
@ -275,7 +275,7 @@ int main() {
|
||||
|
||||
## 其他语言版本
|
||||
|
||||
### java
|
||||
### Java
|
||||
|
||||
```java
|
||||
public class BagProblem {
|
||||
@ -396,7 +396,8 @@ public class BagProblem {
|
||||
|
||||
```
|
||||
|
||||
### python
|
||||
### Python
|
||||
|
||||
无参数版
|
||||
```python
|
||||
def test_2_wei_bag_problem1():
|
||||
@ -456,8 +457,7 @@ if __name__ == "__main__":
|
||||
|
||||
```
|
||||
|
||||
|
||||
### go
|
||||
### Go
|
||||
|
||||
```go
|
||||
func test_2_wei_bag_problem1(weight, value []int, bagweight int) int {
|
||||
@ -498,7 +498,7 @@ func main() {
|
||||
}
|
||||
```
|
||||
|
||||
### javascript
|
||||
### Javascript
|
||||
|
||||
```js
|
||||
function testWeightBagProblem (weight, value, size) {
|
||||
|
@ -3,10 +3,13 @@
|
||||
<img src="../pics/训练营.png" width="1000"/>
|
||||
</a>
|
||||
<p align="center"><strong><a href="https://mp.weixin.qq.com/s/tqCxrMEU-ajQumL1i8im9A">参与本项目</a>,贡献其他语言版本的代码,拥抱开源,让更多学习算法的小伙伴们收益!</strong></p>
|
||||
|
||||
# 动态规划:01背包理论基础(滚动数组)
|
||||
|
||||
**《代码随想录》算法视频公开课:[带你学透0-1背包问题!(滚动数组)](https://www.bilibili.com/video/BV1BU4y177kY/),相信结合视频再看本篇题解,更有助于大家对本题的理解**。
|
||||
## 算法公开课
|
||||
|
||||
**[《代码随想录》算法视频公开课](https://programmercarl.com/other/gongkaike.html):[带你学透0-1背包问题!(滚动数组)](https://www.bilibili.com/video/BV1BU4y177kY/),相信结合视频再看本篇题解,更有助于大家对本题的理解**。
|
||||
|
||||
## 思路
|
||||
|
||||
|
||||
昨天[动态规划:关于01背包问题,你该了解这些!](https://programmercarl.com/背包理论基础01背包-1.html)中是用二维dp数组来讲解01背包。
|
||||
@ -29,7 +32,7 @@
|
||||
|
||||
问背包能背的物品最大价值是多少?
|
||||
|
||||
## 一维dp数组(滚动数组)
|
||||
### 一维dp数组(滚动数组)
|
||||
|
||||
对于背包问题其实状态都是可以压缩的。
|
||||
|
||||
@ -154,8 +157,6 @@ dp[1] = dp[1 - weight[0]] + value[0] = 15
|
||||
|
||||
|
||||
|
||||
## 一维dp01背包完整C++测试代码
|
||||
|
||||
```CPP
|
||||
void test_1_wei_bag_problem() {
|
||||
vector<int> weight = {1, 3, 4};
|
||||
@ -318,7 +319,7 @@ func main() {
|
||||
}
|
||||
```
|
||||
|
||||
### javaScript
|
||||
### JavaScript
|
||||
|
||||
```js
|
||||
|
||||
@ -459,3 +460,4 @@ fn test_wei_bag_problem2() {
|
||||
<a href="https://programmercarl.com/other/kstar.html" target="_blank">
|
||||
<img src="../pics/网站星球宣传海报.jpg" width="1000"/>
|
||||
</a>
|
||||
|
||||
|
Reference in New Issue
Block a user