This commit is contained in:
youngyangyang04
2025-07-06 11:26:06 +08:00
parent e957225f4a
commit 7aa973b561
39 changed files with 127 additions and 100 deletions

View File

@ -14,8 +14,7 @@
示例 1
![](https://code-thinking-1253855093.cos.ap-guangzhou.myqcloud.com/pics/20210713205038.png)
![image](https://file1.kamacoder.com/i/algo/2025-07-04_12-06-59.jpg)
* 输入height = [0,1,0,2,1,0,1,3,2,1,2,1]
* 输出6
* 解释:上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。

View File

@ -613,4 +613,3 @@ func main() {
}
```
<div align="center"><a href="https://www.nowcoder.com/link/wx_sqlcarl199" target="_blank"><img src="https://code-thinking-1253855093.file.myqcloud.com/pics/20220416223343.png" width="1000"/></a></div>

View File

@ -927,4 +927,3 @@ func main() {
### C
<div align="center"><a href="https://www.nowcoder.com/link/wx_sqlcarl199" target="_blank"><img src="https://code-thinking-1253855093.file.myqcloud.com/pics/20220416223343.png" width="1000"/></a></div>

View File

@ -942,4 +942,3 @@ main()
### C
<div align="center"><a href="https://www.nowcoder.com/link/wx_sqlcarl199" target="_blank"><img src="https://code-thinking-1253855093.file.myqcloud.com/pics/20220416223343.png" width="1000"/></a></div>

View File

@ -760,4 +760,3 @@ int main()
}
```
<div align="center"><a href="https://www.nowcoder.com/link/wx_sqlcarl199" target="_blank"><img src="https://code-thinking-1253855093.file.myqcloud.com/pics/20220416223343.png" width="1000"/></a></div>

View File

@ -757,4 +757,3 @@ main()
### C
<div align="center"><a href="https://www.nowcoder.com/link/wx_sqlcarl199" target="_blank"><img src="https://code-thinking-1253855093.file.myqcloud.com/pics/20220416223343.png" width="1000"/></a></div>

View File

@ -432,4 +432,3 @@ echo $s;
### Rust:
<div align="center"><a href="https://www.nowcoder.com/link/wx_sqlcarl199" target="_blank"><img src="https://code-thinking-1253855093.file.myqcloud.com/pics/20220416223343.png" width="1000"/></a></div>

View File

@ -409,4 +409,3 @@ echo $s;
### Rust:
<div align="center"><a href="https://www.nowcoder.com/link/wx_sqlcarl199" target="_blank"><img src="https://code-thinking-1253855093.file.myqcloud.com/pics/20220416223343.png" width="1000"/></a></div>

View File

@ -408,4 +408,3 @@ func main() {
}
```
<div align="center"><a href="https://www.nowcoder.com/link/wx_sqlcarl199" target="_blank"><img src="https://code-thinking-1253855093.file.myqcloud.com/pics/20220416223343.png" width="1000"/></a></div>

View File

@ -536,4 +536,3 @@ main()
<div align="center"><a href="https://www.nowcoder.com/link/wx_sqlcarl199" target="_blank"><img src="https://code-thinking-1253855093.file.myqcloud.com/pics/20220416223343.png" width="1000"/></a></div>

View File

@ -538,4 +538,3 @@ main()
### C
<div align="center"><a href="https://www.nowcoder.com/link/wx_sqlcarl199" target="_blank"><img src="https://code-thinking-1253855093.file.myqcloud.com/pics/20220416223343.png" width="1000"/></a></div>

View File

@ -183,7 +183,6 @@ struct Edge { //邻接表
Edge(int t, int w): to(t), val(w) {} // 构造函数
};
int main() {
int n, m, p1, p2, val;
cin >> n >> m;
@ -229,6 +228,103 @@ int main() {
}
}
}
if (flag) cout << "circle" << endl;
else if (minDist[end] == INT_MAX) {
cout << "unconnected" << endl;
} else {
cout << minDist[end] << endl;
}
}
```
以上代码看上去没问题,但提交之后会发现报错了,为什么呢?
例如这组数据:
```
4 6
1 4 3
1 2 1
1 3 1
3 2 -2
2 4 1
3 4 0
```
如图:
![](https://file1.kamacoder.com/i/algo/2025-06-03_16-12-41.jpg)
上面代码在执行的过程中节点4 已经出队列了,但 计算入度会反复计算 节点4的入度导致 误判 该图有环。
我们需要记录哪些节点已经出队列了,哪些节点在队列里面,对于已经出队列的节点不用统计入度,以下为优化后的代码:
```CPP
#include <iostream>
#include <vector>
#include <queue>
#include <list>
#include <climits>
using namespace std;
struct Edge { //邻接表
int to; // 链接的节点
int val; // 边的权重
Edge(int t, int w): to(t), val(w) {} // 构造函数
};
int main() {
int n, m, p1, p2, val;
cin >> n >> m;
vector<list<Edge>> grid(n + 1); // 邻接表
// 将所有边保存起来
for(int i = 0; i < m; i++){
cin >> p1 >> p2 >> val;
// p1 指向 p2权值为 val
grid[p1].push_back(Edge(p2, val));
}
int start = 1; // 起点
int end = n; // 终点
vector<int> minDist(n + 1 , INT_MAX);
minDist[start] = 0;
queue<int> que;
que.push(start); // 队列里放入起点
vector<int> count(n+1, 0); // 记录节点加入队列几次
count[start]++;
vector<bool> inQueue(n+1, false); // 记录节点是否在队列中
bool flag = false;
while (!que.empty()) {
int node = que.front(); que.pop();
inQueue[node] = false; // 节点出队
for (Edge edge : grid[node]) {
int from = node;
int to = edge.to;
int value = edge.val;
if (minDist[to] > minDist[from] + value) { // 开始松弛
minDist[to] = minDist[from] + value;
if (!inQueue[to]) { // 避免重复入队
que.push(to);
inQueue[to] = true;
count[to]++;
if (count[to] == n) {// 如果加入队列次数超过 n-1次 就说明该图与负权回路
flag = true;
while (!que.empty()) que.pop();
break;
}
}
}
}
}
if (flag) cout << "circle" << endl;
else if (minDist[end] == INT_MAX) {
@ -236,9 +332,7 @@ int main() {
} else {
cout << minDist[end] << endl;
}
}
```
## 其他语言版本
@ -456,4 +550,3 @@ if __name__ == "__main__":
### C
<div align="center"><a href="https://www.nowcoder.com/link/wx_sqlcarl199" target="_blank"><img src="https://code-thinking-1253855093.file.myqcloud.com/pics/20220416223343.png" width="1000"/></a></div>

View File

@ -922,4 +922,3 @@ if __name__ == "__main__":
### C
<div align="center"><a href="https://www.nowcoder.com/link/wx_sqlcarl199" target="_blank"><img src="https://code-thinking-1253855093.file.myqcloud.com/pics/20220416223343.png" width="1000"/></a></div>

View File

@ -574,4 +574,3 @@ if __name__ == '__main__':
### C
<div align="center"><a href="https://www.nowcoder.com/link/wx_sqlcarl199" target="_blank"><img src="https://code-thinking-1253855093.file.myqcloud.com/pics/20220416223343.png" width="1000"/></a></div>

View File

@ -72,6 +72,7 @@
* 1 <= N <= 100
* 1 <= M <= 500
**[《代码随想录》算法视频公开课](https://programmercarl.com/other/gongkaike.html)[所有可达路径](https://www.bilibili.com/video/BV1VePeepEpP),相信结合视频再看本篇题解,更有助于大家对本题的理解**。
## 插曲
@ -887,4 +888,3 @@ async function dfs(graph, x, n) {
<div align="center"><a href="https://www.nowcoder.com/link/wx_sqlcarl199" target="_blank"><img src="https://code-thinking-1253855093.file.myqcloud.com/pics/20220416223343.png" width="1000"/></a></div>

View File

@ -46,6 +46,8 @@
## 思路
**[《代码随想录》算法视频公开课](https://programmercarl.com/other/gongkaike.html)[图论:广搜有陷阱啊!! | 广度优先搜索 | 卡码网99.岛屿数量](https://www.bilibili.com/video/BV18PRGYcEiB/),相信结合视频再看本篇题解,更有助于大家对本题的理解**。
注意题目中每座岛屿只能由**水平方向和/或竖直方向上**相邻的陆地连接形成。
也就是说斜角度链接是不算了, 例如示例二,是三个岛屿,如图:
@ -557,4 +559,3 @@ object Solution {
### C
<div align="center"><a href="https://www.nowcoder.com/link/wx_sqlcarl199" target="_blank"><img src="https://code-thinking-1253855093.file.myqcloud.com/pics/20220416223343.png" width="1000"/></a></div>

View File

@ -46,6 +46,8 @@
## 思路
**[《代码随想录》算法视频公开课](https://programmercarl.com/other/gongkaike.html)[图论:来用深搜解决一道题目,两种深搜写法,你掉坑了吗? | 卡码网99.岛屿数量](https://www.bilibili.com/video/BV18PRGYcEiB/),相信结合视频再看本篇题解,更有助于大家对本题的理解**。
注意题目中每座岛屿只能由**水平方向和/或竖直方向上**相邻的陆地连接形成。
也就是说斜角度链接是不算了, 例如示例二,是三个岛屿,如图:
@ -459,4 +461,3 @@ object Solution {
### C
<div align="center"><a href="https://www.nowcoder.com/link/wx_sqlcarl199" target="_blank"><img src="https://code-thinking-1253855093.file.myqcloud.com/pics/20220416223343.png" width="1000"/></a></div>

View File

@ -44,6 +44,8 @@
## 思路
**[《代码随想录》算法视频公开课](https://programmercarl.com/other/gongkaike.html)[图论:深搜也有陷阱啊!! | 深搜优先搜索 | 卡码网100.岛屿的最大面积](https://www.bilibili.com/video/BV1FzoyY5EXH),相信结合视频再看本篇题解,更有助于大家对本题的理解**。
注意题目中每座岛屿只能由**水平方向和/或竖直方向上**相邻的陆地连接形成。
也就是说斜角度链接是不算了, 例如示例二,是三个岛屿,如图:
@ -890,4 +892,3 @@ main();
### C
<div align="center"><a href="https://www.nowcoder.com/link/wx_sqlcarl199" target="_blank"><img src="https://code-thinking-1253855093.file.myqcloud.com/pics/20220416223343.png" width="1000"/></a></div>

View File

@ -48,6 +48,8 @@
## 思路
**[《代码随想录》算法视频公开课](https://programmercarl.com/other/gongkaike.html)[图论:岛屿问题再出新花样 | 深搜优先搜索 | 卡码网101.孤岛总面积](https://www.bilibili.com/video/BV1mmZJYRESc),相信结合视频再看本篇题解,更有助于大家对本题的理解**。
本题使用dfsbfs并查集都是可以的。
本题要求找到不靠边的陆地面积,那么我们只要从周边找到陆地然后 通过 dfs或者bfs 将周边靠陆地且相邻的陆地都变成海洋,然后再去重新遍历地图 统计此时还剩下的陆地就可以了。
@ -700,4 +702,3 @@ const bfs = (graph, x, y) => {
### C
<div align="center"><a href="https://www.nowcoder.com/link/wx_sqlcarl199" target="_blank"><img src="https://code-thinking-1253855093.file.myqcloud.com/pics/20220416223343.png" width="1000"/></a></div>

View File

@ -55,6 +55,8 @@
## 思路
**[《代码随想录》算法视频公开课](https://programmercarl.com/other/gongkaike.html)[图论:岛屿问题也需要逆向思考 | 深搜优先搜索DFS | 卡码网102.沉没孤岛](https://www.bilibili.com/video/BV1fjdWYyEGu),相信结合视频再看本篇题解,更有助于大家对本题的理解**。
这道题目和[0101.孤岛的总面积](https://kamacoder.com/problempage.php?pid=1173)正好反过来了,[0101.孤岛的总面积](https://kamacoder.com/problempage.php?pid=1173)是求 地图中间的空格数,而本题是要把地图中间的 1 都改成 0 。
那么两题在思路上也是差不多的。
@ -503,4 +505,3 @@ const bfs = (graph, x, y) => {
### C
<div align="center"><a href="https://www.nowcoder.com/link/wx_sqlcarl199" target="_blank"><img src="https://code-thinking-1253855093.file.myqcloud.com/pics/20220416223343.png" width="1000"/></a></div>

View File

@ -59,6 +59,8 @@
## 思路
**[《代码随想录》算法视频公开课](https://programmercarl.com/other/gongkaike.html)[图论:水流向何方? | 深搜优先搜索DFS| 广度优先搜索BFS | 卡码网103.水流问题](https://www.bilibili.com/video/BV1WNoEYrEio),相信结合视频再看本篇题解,更有助于大家对本题的理解**。
一个比较直白的想法,其实就是 遍历每个点,然后看这个点 能不能同时到达第一组边界和第二组边界。
至于遍历方式可以用dfs也可以用bfs以下用dfs来举例。
@ -854,4 +856,3 @@ const isResult = (x, y) => {
<div align="center"><a href="https://www.nowcoder.com/link/wx_sqlcarl199" target="_blank"><img src="https://code-thinking-1253855093.file.myqcloud.com/pics/20220416223343.png" width="1000"/></a></div>

View File

@ -50,6 +50,8 @@
## 思路
**[《代码随想录》算法视频公开课](https://programmercarl.com/other/gongkaike.html)[图论:岛屿问题上难度了! |深搜优先搜索DFS | 广度优先搜索BFS | 卡码网104.建造最大岛屿](https://www.bilibili.com/video/BV1Dn5CzZEw1/),相信结合视频再看本篇题解,更有助于大家对本题的理解**。
本题的一个暴力想法,应该是遍历地图尝试 将每一个 0 改成1然后去搜索地图中的最大的岛屿面积。
计算地图的最大面积:遍历地图 + 深搜岛屿,时间复杂度为 n * n。
@ -663,4 +665,3 @@ const dfs = (graph, visited, x, y, mark) => {
### C
<div align="center"><a href="https://www.nowcoder.com/link/wx_sqlcarl199" target="_blank"><img src="https://code-thinking-1253855093.file.myqcloud.com/pics/20220416223343.png" width="1000"/></a></div>

View File

@ -1,7 +1,7 @@
<p align="center"><strong><a href="./qita/join.md">参与本项目</a>,贡献其他语言版本的代码,拥抱开源,让更多学习算法的小伙伴们受益!</strong></p>
# 105.有向图的完全可达性
# 105.有向图的完全联通
[卡码网题目链接ACM模式](https://kamacoder.com/problempage.php?pid=1177)
@ -44,6 +44,8 @@
## 思路
**[《代码随想录》算法视频公开课](https://programmercarl.com/other/gongkaike.html)[图论:这次我们能到达有向图的所有节点吗?| 深度优先搜索 | 卡码网105. 有向图的完全联通](https://www.bilibili.com/video/BV1QRJ6ziEvJ),相信结合视频再看本篇题解,更有助于大家对本题的理解**。
本题给我们是一个有向图, 意识到这是有向图很重要!
接下来我们再画一个图从图里可以直观看出来节点6 是 不能到达节点1 的
@ -553,4 +555,3 @@ rl.on('close',()=>{
### C
<div align="center"><a href="https://www.nowcoder.com/link/wx_sqlcarl199" target="_blank"><img src="https://code-thinking-1253855093.file.myqcloud.com/pics/20220416223343.png" width="1000"/></a></div>

View File

@ -47,6 +47,8 @@
## 思路
**[《代码随想录》算法视频公开课](https://programmercarl.com/other/gongkaike.html)[图论:这次的岛屿问题有点简单了。。 卡码网106.岛屿的周长](https://www.bilibili.com/video/BV13fjczSEyV),相信结合视频再看本篇题解,更有助于大家对本题的理解**。
岛屿问题最容易让人想到BFS或者DFS但本题确实还用不上。
为了避免大家惯性思维,所以给大家安排了这道题目。
@ -359,4 +361,3 @@ func parseLine(line string, count int) []int {
### C
<div align="center"><a href="https://www.nowcoder.com/link/wx_sqlcarl199" target="_blank"><img src="https://code-thinking-1253855093.file.myqcloud.com/pics/20220416223343.png" width="1000"/></a></div>

View File

@ -422,4 +422,3 @@ const isSame = (u, v) => {
### C
<div align="center"><a href="https://www.nowcoder.com/link/wx_sqlcarl199" target="_blank"><img src="https://code-thinking-1253855093.file.myqcloud.com/pics/20220416223343.png" width="1000"/></a></div>

View File

@ -376,4 +376,3 @@ const isSame = (u, v) => {
### C
<div align="center"><a href="https://www.nowcoder.com/link/wx_sqlcarl199" target="_blank"><img src="https://code-thinking-1253855093.file.myqcloud.com/pics/20220416223343.png" width="1000"/></a></div>

View File

@ -596,4 +596,3 @@ const getRemoveEdge = (edges) => {
### C
<div align="center"><a href="https://www.nowcoder.com/link/wx_sqlcarl199" target="_blank"><img src="https://code-thinking-1253855093.file.myqcloud.com/pics/20220416223343.png" width="1000"/></a></div>

View File

@ -63,6 +63,8 @@ yhn
## 思路
**[《代码随想录》算法视频公开课](https://programmercarl.com/other/gongkaike.html)[图论:朴实无华的广搜这么难? | 广度优先搜索 | 卡码网110.字符串接龙](https://www.bilibili.com/video/BV1QEEizDEC4),相信结合视频再看本篇题解,更有助于大家对本题的理解**。
以示例1为例从这个图中可以看出 abc 到 def的路线 不止一条但最短的一条路径上是4个节点。
![](https://file1.kamacoder.com/i/algo/20250317105155.png)
@ -360,4 +362,3 @@ const init = async () => {
### C
<div align="center"><a href="https://www.nowcoder.com/link/wx_sqlcarl199" target="_blank"><img src="https://code-thinking-1253855093.file.myqcloud.com/pics/20220416223343.png" width="1000"/></a></div>

View File

@ -539,4 +539,3 @@ const init = async () => {
### C
<div align="center"><a href="https://www.nowcoder.com/link/wx_sqlcarl199" target="_blank"><img src="https://code-thinking-1253855093.file.myqcloud.com/pics/20220416223343.png" width="1000"/></a></div>

View File

@ -684,4 +684,3 @@ int main() {
<div align="center"><a href="https://www.nowcoder.com/link/wx_sqlcarl199" target="_blank"><img src="https://code-thinking-1253855093.file.myqcloud.com/pics/20220416223343.png" width="1000"/></a></div>

View File

@ -91,4 +91,3 @@ cout << result[result.size() - 1];
等大家将图论刷完,就会感受到我的良苦用心。加油
<div align="center"><a href="https://www.nowcoder.com/link/wx_sqlcarl199" target="_blank"><img src="https://code-thinking-1253855093.file.myqcloud.com/pics/20220416223343.png" width="1000"/></a></div>

View File

@ -454,4 +454,3 @@ void join(int u, int v) {
敬请期待 并查集题目精讲系列。
<div align="center"><a href="https://www.nowcoder.com/link/wx_sqlcarl199" target="_blank"><img src="https://code-thinking-1253855093.file.myqcloud.com/pics/20220416223343.png" width="1000"/></a></div>

View File

@ -1,5 +1,7 @@
# 广度优先搜索理论基础
**[《代码随想录》算法视频公开课](https://programmercarl.com/other/gongkaike.html)[广度优先搜索理论基础](https://www.bilibili.com/video/BV1M19iY4EL9),相信结合视频再看本篇题解,更有助于大家对本题的理解**。
在[深度优先搜索](./图论深搜理论基础.md)的讲解中,我们就讲过深度优先搜索和广度优先搜索的区别。
广搜bfs是一圈一圈的搜索过程和深搜dfs是一条路跑到黑然后再回溯。
@ -102,4 +104,3 @@ void bfs(vector<vector<char>>& grid, vector<vector<bool>>& visited, int x, int y
相信看完本篇,大家会对广搜有一个基础性的认识,后面再来做对应的题目就会得心应手一些。
<div align="center"><a href="https://www.nowcoder.com/link/wx_sqlcarl199" target="_blank"><img src="https://code-thinking-1253855093.file.myqcloud.com/pics/20220416223343.png" width="1000"/></a></div>

View File

@ -143,4 +143,3 @@ kruscal的主要思路
图论也是我 《代码随想录》所有章节里 所费精力最大的一个章节。
只为了不负录友们的期待。 大家加油💪🏻
<div align="center"><a href="https://www.nowcoder.com/link/wx_sqlcarl199" target="_blank"><img src="https://code-thinking-1253855093.file.myqcloud.com/pics/20220416223343.png" width="1000"/></a></div>

View File

@ -1,6 +1,8 @@
# 深度优先搜索理论基础
**[《代码随想录》算法视频公开课](https://programmercarl.com/other/gongkaike.html)[深度优先搜索理论基础](https://www.bilibili.com/video/BV1hFA8eKE6C),相信结合视频再看本篇题解,更有助于大家对本题的理解**。
录友们期待图论内容已久了,为什么鸽了这么久,主要是最近半年开始更新[代码随想录算法公开课](https://www.bilibili.com/video/BV1fA4y1o715/)是开源在B站的算法视频已经帮助非常多基础不好的录友学习算法。
录视频其实是非常累的,也要花很多时间,所以图论这边就没抽出时间来。
@ -194,4 +196,3 @@ for (选择:本节点所连接的其他节点) {
后面我也会给大家安排具体练习的题目,依旧是代码随想录的风格,循序渐进由浅入深!
<div align="center"><a href="https://www.nowcoder.com/link/wx_sqlcarl199" target="_blank"><img src="https://code-thinking-1253855093.file.myqcloud.com/pics/20220416223343.png" width="1000"/></a></div>

View File

@ -1,6 +1,8 @@
# 图论理论基础
**[《代码随想录》算法视频公开课](https://programmercarl.com/other/gongkaike.html)[图论理论基础](https://www.bilibili.com/video/BV1hYNBeYEvb/),相信结合视频再看本篇题解,更有助于大家对本题的理解**。
这一篇我们正式开始图论!
代码随想录图论中的算法题目将统一使用ACM模式[为什么要使用ACM模式](./图论为什么用ACM模式.md)
@ -246,4 +248,3 @@ dfs 和 bfs 一种搜索算法,可以在不同的数据结构上进行搜索
敬请期待!
<div align="center"><a href="https://www.nowcoder.com/link/wx_sqlcarl199" target="_blank"><img src="https://code-thinking-1253855093.file.myqcloud.com/pics/20220416223343.png" width="1000"/></a></div>

View File

@ -51,4 +51,3 @@
<div align="center"><a href="https://www.nowcoder.com/link/wx_sqlcarl199" target="_blank"><img src="https://code-thinking-1253855093.file.myqcloud.com/pics/20220416223343.png" width="1000"/></a></div>

View File

@ -1,57 +0,0 @@
# 23种设计模式精讲 | 配套练习题 | 卡码网
关于设计模式的学习,大家应该还是看书或者看博客,但却没有一个边学边练的学习环境。
学完了一种设计模式 是不是应该去练一练?
所以卡码网 针对 23种设计**推出了 23道编程题目来帮助大家练习设计模式**。
<div align="center"><img src='https://file1.kamacoder.com/i/algo/20240104164130.png' width=500 alt=''></img></div>
这里的23到编程题目对应了 23种这几模式。 例如第一题,小明的购物车,就是单例模式:
<div align="center"><img src='https://file1.kamacoder.com/i/algo/20240103210802.png' width=500 alt=''></img></div>
区别于网上其他教程,本教程的特点是:
* **23种设计模式全覆盖**涵盖了所有Gang of Four设计模式包括创建型、结构型和行为型设计模式。
* 通过23道简单而实用的例子**以刷算法题的形式了解每种设计模式的概念、结构和应用场景**。
* **为每个设计模式提供清晰的文字解释、结构图和代码演示**,帮助你更好地理解和实践。
* **难度安排循序渐进**,从基础的、常用的设计模式逐步深入。
这样的一个学习体验,要收费吗?
**免费的**
相信录友们可能还没有这种学习设计模式的体验快去卡码网kamacoder.com上体验吧。
23道 设计模式的题目给大家出了,那么是不是得安排上对应的讲解?
**当然安排**
针对每道题目,还给大家编写了一套 23种设计模式精讲已经开源到Github上
> https://github.com/youngyangyang04/kama-DesignPattern
支持JavaPythonGoC++ 版本也欢迎大家去Github上提交PR补充其他语言版本。
所以题解也免费开放给录友!
同时还给全部整理到PDF上这份PDF我们写的很用心了来个大家截个图
<div align="center"><img src='https://file1.kamacoder.com/i/algo/20240104164830.png' width=500 alt=''></img></div>
<div align="center"><img src='https://file1.kamacoder.com/i/algo/20240104164854.png' width=500 alt=''></img></div>
<div align="center"><img src='https://file1.kamacoder.com/i/algo/20240104164920.png' width=500 alt=''></img></div>
<div align="center"><img src='https://file1.kamacoder.com/i/algo/20240104164947.png' width=500 alt=''></img></div>
关于设计模式的题目,大家现在就可以去 卡码网kamacoder去做了。
关于这23道题目对应 设计模式精讲 PDF也免费分享给录友们大家可以加我的企业微信获取
<div align="center"><img src='https://file1.kamacoder.com/i/algo/20240103212419.png' width=500 alt=''></img></div>
已经有我企业微信的录友,直接发:设计模式,这四个字就好,我会直接发你。

View File

@ -115,7 +115,7 @@
能把本篇中列举的题目都研究通透的话,你的动规水平就已经非常高了。 对付面试已经足够!
![](https://kstar-1253855093.cos.ap-nanjing.myqcloud.com/baguwenpdf/_%E5%8A%A8%E6%80%81%E8%A7%84%E5%88%92%E6%80%9D%E7%BB%B4%E5%AF%BC%E5%9B%BE_%E9%9D%92.png)
![image](https://file1.kamacoder.com/i/algo/_动态规划思维导图_青.png)
这个图是 [代码随想录知识星球](https://programmercarl.com/other/kstar.html) 成员:[](https://wx.zsxq.com/dweb2/index/footprint/185251215558842),所画,总结的非常好,分享给大家。