- 在线时间
- 1630 小时
- 最后登录
- 2024-1-29
- 注册时间
- 2017-5-16
- 听众数
- 82
- 收听数
- 1
- 能力
- 120 分
- 体力
- 569168 点
- 威望
- 12 点
- 阅读权限
- 255
- 积分
- 175973
- 相册
- 1
- 日志
- 0
- 记录
- 0
- 帖子
- 5313
- 主题
- 5273
- 精华
- 3
- 分享
- 0
- 好友
- 163
TA的每日心情 | 开心 2021-8-11 17:59 |
|---|
签到天数: 17 天 [LV.4]偶尔看看III 网络挑战赛参赛者 网络挑战赛参赛者 - 自我介绍
- 本人女,毕业于内蒙古科技大学,担任文职专业,毕业专业英语。
 群组: 2018美赛大象算法课程 群组: 2018美赛护航培训课程 群组: 2019年 数学中国站长建 群组: 2019年数据分析师课程 群组: 2018年大象老师国赛优 |
2 ^2 S8 `% s0 x4 P$ z: {, C
2020最新-精选基础算法100题(面试必备)
( ^3 o" a( X( `0 L$ H: r0 j$ I9 d8 F$ @
0x01.概述1 q- \" h$ o% V( B4 Y
作为一个程序员,算法能力必不可少,虽然不一定是算法工程师,但是算法还是彰显着个人的编码能力,面试中也经常会被问到,甚至会被要求临场做算法题,所以,还是好好积累吧。
! N2 i! P0 s# y% O5 P
( e" y, C' z8 |9 s6 J+ a2 R0 } W+ Z
个人其实对算法挺有兴趣的,从3月份开始,陆陆续续刷了一些算法题,把一些有意义的记录下来了,也顺便写了一些题解,个人认为,还是挺有收获的。
. [: O8 b& c; d% j2 V之前写了一篇算法文章的目录,不过后来就忘了实时去更新了,于是现在,想把之前做过的一些有意义的算法题分享出来,刚好整理了100篇比较有意义的。希望对大家有所帮助。
# H' L3 A& u, _ I- s
% N! p. d$ _' s' U% j, G% J
/ L# a9 @9 o, s; ~ |. @& r6 [% R
- p3 T" I. W& ^# }& @
0x02.说明
. e1 U" x- G9 I2 O9 z& k8 K关于语言的选择:* S- f3 C- y, K; G; ~, d+ n
6 W7 n4 h8 u; @' _ L* Z$ r% n f# c9 \' V- _" p/ D* _) o, R5 C
前半段主要用C++写的,后半段主要用Java写的。" Q$ A# D, F; H4 h8 ]. V. j9 G
其实什么语言没有太大区别,主要是思想,用着顺手就行。
$ v9 k! l- S4 A* J这里安利一波Java,哈哈,Java写算法题写多了,真的比较舒适。
2 [/ ]& K, ~4 ^0 ?" `1 q关于文章类型的选择:
% F) e$ s6 v9 p H5 i& }, t) {
# x6 @; \3 `0 I, I
; J9 g1 {1 g% c- `' m选取了一些较为基本的算法类型,都是比较常见的。. L" x0 ^/ e0 s9 V5 z, Z9 Y
不涉及ACM等难度太高的题,大佬们移步哈。. x: `& E( c$ X3 B
都是一些比较经典的问题。
' S3 F$ ^' ~$ M7 z关于题目的来源:: H- u" ?( \ P; R' \ e
2 V. V/ V2 C* c; j- D8 j
: u" {1 q' M* \& n0 `7 { ^平时主要刷题的平台是Leetcode,因为是函数式的,比较方便。
& N6 D8 Z0 ~$ G6 K/ c6 V) U还有一些是在《剑指offer》,《程序员面试金典》中看到比较好的,所有题目后面都给出了出处。; y: j6 ]. x7 n- J
关于题解的说明:
4 A# \/ F4 N2 J8 m
! n- a! _. w; c' h. ?; q* \& \# C% g- O
题解是我自己所写,有时候也参考了一些官方题解的思想,可能更好理解。
( x z, @) F4 U+ r( O题解的代码都提交测试过的,保证暂时没有问题。
! r* s. G7 w0 a, k# V个人水平有限,可能文章里面存在一些问题,还望大佬多多指点。
% d9 I! G. E& u- f9 U每个题目附带了原文链接,不喜欢阅读我题解的小伙伴们也可以直接移步原出处哈。
6 l/ Z4 k: o/ D关于算法能力提升的一些意见:
( ^% \$ v! P4 b$ z$ ]" _6 X$ P4 o
- z! \) a3 a* Y* w3 g, F8 a$ R个人认为,算法来说,思想最为重要,有算法的严谨思想,才是算法能力提升的基础。, P# {) o! ~% g% z% m
刷题就是培养算法思想的一种实际行动。& A3 W9 e& j/ s4 y( K( Y
好好理解透一个问题,或者一类问题,远胜于你麻木的刷大量的题。2 }& X6 H2 g' |, n+ H7 S3 F
算法确实也有模板题,只需要照着模板就能做出,但问题是,照着模板就一定能做出来嘛,是否真正理解了为什么这个模板可以通用。
+ U: y% \4 }( W* v8 X7 G7 U关于分类:
' V, A: N' d3 {/ ~( p
8 g. L! U% F! J& R* n$ L3 N6 l* a; Q2 G& X: N, \
有些分类确实不太好分,所以就单独列出来了。5 K& ?3 Q, C# x# Y
主要的还是区分开来了。0 P8 i t6 C' O5 t
0x03.正文–精选算法100题(附个人题解)
! }0 ^" p+ ?: l+ G- F1 v分类一:动态规划(dp)1 T; n: @! }; h
没错,就是你熟悉的dp,dp说简单也简单,说难也实在是太难了,重点是如何找到里面的状态转移方程。经过这些题目的训练,希望你能有一些初步的dp思路了。
% n! g: l$ ^% k+ o8 r% h+ e/ T; j5 R- E8 l! d/ P" R& t
, M5 ?$ F- H- {6 `4 Y! X+ _
题目名称 来源 个人题解 备注
+ ^/ q2 B* {; D4 F7 H. C7 W9 S01.打家劫舍 Leetcode题198:戳我前往 戳我前往 估计是最好的dp入门题型了6 y; m: `( t4 G8 W
02.斐波拉契数列 经典问题 戳我前往 确实比较经典哦~& Y0 e6 K, _! _! F( h
03.零钱兑换问题 Leetcode题322:戳我前往 戳我前往 也是一个比较经典的问题了
, \' e7 w# n2 i4 l! J0 k2 u04.零钱兑换II Leetcode题518:戳我前往 戳我前往 零钱问题通用解法
# A: p& A* m, A' T05.最长上升子序列 Leetcode题300:戳我前往 戳我前往 堪称数组dp中的典范* p7 X9 ~. g ~- ~
06.牌型种数 蓝桥杯:链接暂无 戳我前往 二维动态规划,要仔细想想- @2 m/ p9 V+ {4 ~7 o
07.最低票价 Leetcode题983:戳我前往 戳我前往 如何状态转移?
% c4 Q4 A6 T1 _8 f3 C2 V; N+ t9 w; d08.不同的二叉搜索树 Leetcode题152:戳我前往 戳我前往 你会发现dp的神奇之处
/ u4 |5 X$ T8 G4 I9 x09.礼物的最大价值 《剑指offer》题47 戳我前往 优化dp的思路
9 l* {4 i* i. J9 p- i& u10.接雨水 Leetcode题42:戳我前往 戳我前往 需要仔细思考以发现dp
4 w- `9 i5 z4 n* \8 m- O11.编辑距离 Leetcode题72:戳我前往 戳我前往 最为经典的二维dp题型
6 E' l- w8 l/ V0 D9 }12.买卖股票的最佳时机(6题) Leetcode6题:戳我前往 戳我前往 统一化的dp思维,棒
7 v" C% ~9 {( p( Y, {. o2 T$ A& Z5 b13.鸡蛋掉落 Leetcode题887:戳我前往 戳我前往 有些难度哦~ L; \0 z( q, o- u" a
14.最大正方形 Leetcode题221:戳我前往 戳我前往 矩阵中的dp思路
7 |1 N0 ?- u y/ F* [* s15.和为K的子数组 Leetcode题560:戳我前往 戳我前往 前缀和也是dp的思路
# R; Y4 S; D5 z* J分类二:搜索类(DFS,BFS,回溯,暴力搜索)
' h a8 |. \" W- ]1 z搜索类的算法题应该是随便哪个算法比赛都可以看到,虽然经典,但在这上面还是会有比较难的问题,所以,掌握基本思路和套路就显得格外重要。 j3 x4 d& }5 v
8 n4 a4 d E1 \: S2 I. q* K! n
, h4 h+ T, c% J2 V1 j/ u3 S
题目名称 来源 个人题解 备注* l* B9 R" ]# \
16.图的深搜和广搜 经典问题 戳我前往 搜索中的经典问题+ s& h- ^" A$ i# c( S
17.方格填数 蓝桥杯:链接暂无 戳我前往 揣摩一下DFS的思路
5 W- k$ G9 F: L/ R18.路径之谜 蓝桥杯:链接暂无 戳我前往 经典改编迷宫问题
% X) ~6 M7 J7 R; R19.岛屿的最大面积 Leetcode题695:戳我前往 戳我前往 最常见的矩阵中的DFS. p& k8 V, }6 E5 e z* C) K
20.逃离大迷宫 Leetcode题1036:戳我前往 戳我前往 各种搜索思想都可以应用
- w# O7 X+ r% Z: }+ s" [21.单词搜索 Leetcode题79:戳我前往 戳我前往 字符串中的搜索
, S) g ?) y) h; \) n22.检查网格中是否存在有效路径 Leetcode题1391:戳我前往 戳我前往 思考另类的搜索
8 p5 X- K7 H* B: p1 a+ r23.地图分析 Leetcode题1162:戳我前往 戳我前往 多源BFS
1 F7 s3 n# h: F/ H24.机器人的运动范围 《剑指offer》13题 戳我前往 DFS进行计数的基本思路
9 \/ k" H! y0 g' K, F, L; C8 }25.括号生成 Leetcode题22:戳我前往 戳我前往 用DFS生产括号
+ }6 v* O, N: e: o: \26.01 矩阵 Leetcode题542:戳我前往 戳我前往 矩阵中的搜索2 C6 L- L% O- i g' N6 m0 A: N
27.岛屿数量 Leetcode题200:戳我前往 戳我前往 根据需求使用DFS
; a) g- N2 m$ C" S H. L2 Q28.全排列问题 Leetcode题46:戳我前往 戳我前往 最经典的回溯算法4 P$ O6 R2 u% F1 Q/ M2 [6 B. e0 `
分类三:字符串
+ j( |8 f, h6 p2 i' {) ?. i7 b0 @别忽视字符串的算法问题,它难起来可以非常难,简单的也很简单,面试喜欢提问,而且特别容易出错,需要引起重视。7 e& j) D; S! S% w* q
5 y4 z4 b* j2 @) _) N2 ~$ E% W; [. @' F* G# R# j
题目名称 来源 个人题解 备注
2 M. p8 A8 h% F5 K4 }! V29.KMP算法 经典算法 戳我前往 经典字符串匹配算法6 M( }. p% {( W$ ]
30.拼写单词 Leetcode题1160:戳我前往 戳我前往 很简单的字符串问题
2 `6 f* @- Y( L* L/ Z: o% Z31.竖直打印单词 Leetcode题1324:戳我前往 戳我前往 简单但值得思考8 q$ |. X0 N$ p
32.不含 AAA 或 BBB 的字符串 Leetcode题984:戳我前往 戳我前往 巧妙构造出字符串
) v9 K6 L, N5 P! p33.实现Trie(前缀树) Leetcode题208:戳我前往 戳我前往 字符串中经典的算法) q1 s, R8 P7 q
34.最长快乐前缀 Leetcode题1392:戳我前往 戳我前往 如何处理字符串的前后缀
) K$ |% \$ h) A/ c: z35.单词搜索II Leetcode题212:戳我前往 戳我前往 前缀树的应用# P$ G0 h0 u2 T& H" O
36.单词的压缩编码 Leetcode题820:戳我前往 戳我前往 前缀树灵活运用; \) O6 A1 H5 m- R' O
37.判定字符是否唯一 《程序员面试金典》01.02 戳我前往 简单但值得思考
9 \% J; ~! L5 `; p" S3 R* {38.判定是否互为字符重排 《程序员面试金典》 01.02 戳我前往 简单的面试题
: [7 C: x. d$ U# H, i7 t) ]39.无重复字符的最长子串 Leetcode题3:戳我前往 戳我前往 字符串中的滑动窗口
( J8 ?4 }- P2 S& m% N9 d# ~/ F40.字符串转换整数 Leetcode题8:戳我前往 戳我前往 需要考虑的细节很多. Z0 V7 c n( n0 U' [ k: g! G5 d
41.翻转字符串里的单词 Leetcode题151:戳我前往 戳我前往 正则匹配8 G- p# E V" u6 f5 c; @& e7 z/ l( V
42.整数转换英文表示 Leetcode题273:戳我前往 戳我前往 非常实用的算法题. a) w8 h3 F4 F+ M* D$ c+ f
43.统计重复个数 Leetcode题466:戳我前往 戳我前往 循环结剪枝
, n5 h7 G* N4 G" B44.超级回文数 Leetcode题906:戳我前往 戳我前往 字符串与大数的处理思路: q3 j* C! U' E. [: p0 S, }
45.单词子集 Leetcode题96:戳我前往 戳我前往 特征思想的应用
, Z8 l& A. C- G! e4 B" m! }分类四:容器类(哈希表,栈,队列,Map,Set)6 a& Q- Q+ }) ?
容器类的算法题一般需要根据一些容器的特点来解决响应的问题,还有需要选择合适的容器进行新的数据结构的设计,掌握它们的使用,非常重要。
+ a! @8 l# g( Y1 p7 F3 T2 q$ z; F+ `8 p0 Y: Q. m$ z) s, e, @% {
8 r1 L7 {4 l& u6 l# }7 i7 i: U" ~; `# C& \题目名称 来源 个人题解 备注6 ?: F" c7 U" c; Y
46.按位与为零的三元组 Leetcode题82:戳我前往 戳我前往 哈希表优化
* o2 X: c2 }! r- p2 ]47.设计地铁系统 Leetcode题1396:戳我前往 戳我前往 合理选择容器
6 \5 N& I2 j6 H. ~/ f- r) M; N48.LFU缓存 《程序员面试金典》 戳我前往 选择容器来设计
$ X. Z4 B8 S5 |, P% [49.设计推特 Leetcode题355:戳我前往 戳我前往 很实用的算法
4 |' Z. i& R# Q' ~3 `! r50.最小栈 Leetcode题155:戳我前往 戳我前往 两栈设计最小栈; s8 I$ e, X8 x9 s! t
51.子数组的最小值之和 Leetcode题907:戳我前往 戳我前往 单调栈的应用
9 p0 J# k: p% M0 ?- e; y. A5 A52.栈的压入、弹出序列 《剑指offer》 戳我前往 栈的合法序列4 f; Q+ {+ e7 H1 W/ D: o" M1 c
53.有效括号的嵌套深度 Leetcode题1111:戳我前往 戳我前往 模仿栈
# K/ Z4 q( q" D' t! B- _; W54.逆波兰算法 经典算法 戳我前往 后缀表达式关键算法: U$ u# n! U! S
分类五:数学思维类(含位运算思想)
8 c* p% I$ p$ i; f9 ~数学思维类的题由于需要很强大的数学思维,但是这又不是一天可以练成的,所以,也常常在面试中会被问到,只有慢慢的积累,才是王道。" u( v6 u( N1 B# D; J6 K% M
; e. W+ ^& o* o& o/ @/ R' S2 m/ E6 _
题目名称 来源 个人题解 备注0 k3 g0 }; s! f- M. y# U' k0 B0 m
55.水壶问题 Leetcode题365:戳我前往 戳我前往 经典数学问题
1 O; b. G W7 D56.三维形体的表面积 Leetcode题892:戳我前往 戳我前往 空间思想解决算法问题
+ }7 q* ], l7 A" ], B" d57.生命游戏 Leetcode题289:戳我前往 戳我前往 数学思维的运用+ P& M l4 P0 r/ } m4 R' x
58.交点 《程序员面试金典》16.03 戳我前往 二维平面的交点问题1 s" J" y9 v J3 x. B2 u8 w. g
59.使数组唯一的最小增量 Leetcode题945:戳我前往 戳我前往 数学思维的运用" J# Z0 {# G; o9 |, v; L+ P$ L8 z
60.数值的整数次方 《剑指offer》题16 戳我前往 非常容易出错的面试题) |+ a0 B4 Y2 X' q- N" B
61.求 1+2+…+n 《剑指offer》 戳我前往 短路原则
+ ?) G8 p9 t# }$ f# {8 l7 R62.1~n整数中1出现的次数 《剑指offer》 戳我前往 数学思维找规律* B) b+ @" F, {, L# h" T8 G
63.数组中数字出现的次数 《剑指offer》 戳我前往 分组异或3 x: K7 j6 a( [8 u( W
分类六:链表6 ~$ t" F* J4 a6 A+ `1 @
链表是一种非常常见的数据结构,不管在实际应用还是算法竞赛中,都经常出现,掌握对它们的基本处理,非常重要。" P3 q3 Y0 M: w1 R& S; m" J
; |/ o2 g, b2 q) H' f
( @4 S% D: H& f+ v5 b题目名称 来源 个人题解 备注4 A$ ^: t0 x; q: K7 `0 \7 a1 c
64.两数相加 Leetcode题2:戳我前往 戳我前往 链表的加法问题, h/ ]) }' }; n+ F
65.链表的中间结点 Leetcode题876:戳我前往 戳我前往 快慢指针思想/ V6 e0 o& Y' K2 S8 ]
66.删除链表的倒数第N个节点 Leetcode题19:戳我前往 戳我前往 哑节点和双指针8 Y# ^0 V0 a9 E6 l0 j( F' {
67.合并两个有序链表 Leetcode题21:戳我前往 戳我前往 链表的递归处理
# x, `5 I: d, E) T8 L68.合并K个排序链表 Leetcode题23:戳我前往 戳我前往 优先队列的使用( M4 x* b4 p9 H1 r0 ?
69.删除排序链表中的重复元素 II Leetcode题82:戳我前往 戳我前往 链表基础指针操作/ Q5 `1 {* d# c' F; Q" @
70.分隔链表 Leetcode题86:戳我前往 戳我前往 双指针操作& {3 W( C- W1 D6 J8 }4 ]! `8 K
71.旋转链表 Leetcode题61:戳我前往 戳我前往 巧转循环链表
+ t( \7 m. W8 j0 N0 q72.两两交换链表中的节点 Leetcode题24:戳我前往 戳我前往 递归解决# \1 E% o. Y }6 S- G, p2 N' l( f
73.反转链表 Leetcode题206:戳我前往 戳我前往 多种思路反转链表
' w# r2 r" H1 A X. _74.K 个一组翻转链表 Leetcode题25:戳我前往 戳我前往 分组逆转
x* ^8 G! [8 \) e W75.判断链表是否有环 《剑指offer》 戳我前往 多种思路判断链表是否有环+ q! e' ?# C5 p) \& o# U, {. [
76.单链表的插入排序 Leetcode题147:戳我前往 戳我前往 链表的插入排序* ^/ a% a: J. `8 E
77.两数相加 II Leetcode题445:戳我前往 戳我前往 用栈翻转链表元素
) U$ j8 ?6 n* }2 C" W3 j1 w分类七:树
2 v% T' }2 O. |& G0 w& W g树也是一种非常重要的数据结构,因为很多容器的底层都设计到树,所以树也成了面试常问的重点了,你需要对他们的一些基本算法题,非常熟练。9 T6 a. l$ P" p+ n; O) H3 j; w* q1 Z
$ z; |% ]6 j$ F3 D% X
' {+ ?. L1 |9 E8 y+ ]( ]; E5 g7 D题目名称 来源 个人题解 备注/ z* f4 A+ k$ n
78.删除给定值的叶子结点 Leetcode题1325:戳我前往 戳我前往 树的简单删除问题
5 i3 G8 j4 ?" A8 B5 W79.二叉树的最大最小深度 Leetcode题104:戳我前往 戳我前往 二叉树的深度问题
- C2 f" m) @: \* N: e7 {# Z80.将有序数组转换为二叉搜索树 Leetcode题108:戳我前往 戳我前往 数组和二叉树的转换
6 `" \2 M! g, V9 h" o' V1 _81.二叉树的右视图 Leetcode题199:戳我前往 戳我前往 二叉树的视图转换
" _- P2 F! q& Y0 T# q2 v2 O82.另一个树的子树 Leetcode题572:戳我前往 戳我前往 两树关系的判断
" }$ Z3 W- @* e; ?' Z, Q83.二叉树的最近公共祖先 《剑指offer》 戳我前往 公共祖先问题
! c. h$ s4 K2 I3 ?84.二叉树的层序遍历序列存储 Leetcode题102:戳我前往 戳我前往 二叉树遍历序列的存储7 h% C% W# p3 L9 G+ t1 s
85.验证二叉搜索树 Leetcode题98:戳我前往 戳我前往 二叉搜索树的验证: @+ x" w, H# a+ l! u
分类八:数组(贪心,二分)# w1 L# c, a3 d/ u U( O) Z7 U" j0 A
数组类的算法题也是,说难不难,说简单不简单,而且数组是平时编码用的最多的结构了,所以,需要对它的一些基本算法引起重视。
- B; H* v1 p1 r- \. }! i
4 ?$ w0 J; N- D: t b/ I( x
% {. S# M0 _% y/ e/ Z题目名称 来源 个人题解 备注7 a/ C/ y+ Y* |, G
86.两个数组间的距离值 Leetcode题1385:戳我前往 戳我前往 二分法应用/ L5 q# O( y3 D' A2 J0 ]; _. [
87.旋转矩阵 《程序员面试金典》 戳我前往 原地修改2 {0 {/ o2 R9 g; `3 q$ ^/ @0 q
88.合并区间 Leetcode题56:戳我前往 戳我前往 排序处理数组问题# u5 p2 _& W: Y7 e# b- |6 ]
89.跳跃游戏 Leetcode题55:戳我前往 戳我前往 贪心思想运用
4 C) f; z' N# I% d90.盛最多水的容器 Leetcode题11:戳我前往 戳我前往 双指针& S- y+ o, b# ^- X& y
91.统计「优美子数组」 Leetcode题1248:戳我前往 戳我前往 滑动窗口
2 S G! k: S7 G) s, |9 ]92.搜索旋转排序数组 Leetcode题33:戳我前往 戳我前往 二分搜索
: | V( ^/ e4 x$ w. o5 h93.山脉数组中查找目标值 Leetcode题1095:戳我前往 戳我前往 二分搜索
?3 V+ y0 ~7 C) G$ s. K94.快乐数 Leetcode题202:戳我前往 戳我前往 快慢指针判断成环思路
# r5 t; @1 L1 G2 Y( Q95.跳跃游戏 II Leetcode题45:戳我前往 戳我前往 贪心思想
4 i, [8 I- b" l9 ~96.x 的平方根 Leetcode题69:戳我前往 戳我前往 二分法取平方根
' f) B* R u/ |( }7 s1 ]) m6 F97.数组中的逆序对 《剑指offer》题51 戳我前往 归并中的计数(分治)
9 f) u& S' x* s* x4 g- Y98.课程表 II Leetcode题210:戳我前往 戳我前往 数组中的拓扑排序
; o- o% e7 X$ K4 l! F分类九:经典算法列举' U# R( m' Q) a% q1 b: M: u: J
最后两个,凑个整,刚好100,是一些比较经典的算法列举。
: P: r+ U2 U8 Q0 e: [/ P+ |0 |( ~; k# F" w6 Y
9 O. \5 @# U, y+ n6 J% x3 {8 y5 k
题目名称 来源 个人题解 备注* I, M w/ b: e/ @/ h( F+ K
99.普利姆算法 经典算法 戳我前往 最小生成树经典算法, g6 g5 ?% z3 w! H5 }1 |' Y; K
100.约瑟夫环 经典算法 戳我前往 很经典的动态问题
, _0 A# m% a; A W% K7 x0x04.End
$ }6 r8 {1 f9 y2 l2 @3 k x+ X j希望这100个算法题能对正在看的你有所帮助!& |2 L& y8 ?) _& X+ A% v
后续还会继续更新更多的内容。
4 c# t, G! O" m' c. `! F: G# M您的支持,是我分享的不竭动力!" A9 X, g( ]; g t
" J/ Y1 {# L/ m1 q
* b' V; F. s& F! B, B b" ]; F+ {– ATFWUS 2020-05-182 E% z2 q7 T: F7 n, p8 ^% {1 u
————————————————0 e! \- x+ @0 @
版权声明:本文为CSDN博主「ATFWUS」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
. J3 `( W9 m8 f: }+ E原文链接:https://blog.csdn.net/ATFWUS/article/details/106193067
5 }4 e) _7 F7 Y# x6 [/ e. h
2 h8 X. x- _6 l( c8 v4 q, u/ H$ G" @5 r2 z3 A5 E$ D& X0 H9 J
|
zan
|