- 在线时间
- 1630 小时
- 最后登录
- 2024-1-29
- 注册时间
- 2017-5-16
- 听众数
- 82
- 收听数
- 1
- 能力
- 120 分
- 体力
- 565610 点
- 威望
- 12 点
- 阅读权限
- 255
- 积分
- 174906
- 相册
- 1
- 日志
- 0
- 记录
- 0
- 帖子
- 5313
- 主题
- 5273
- 精华
- 3
- 分享
- 0
- 好友
- 163
TA的每日心情 | 开心 2021-8-11 17:59 |
|---|
签到天数: 17 天 [LV.4]偶尔看看III 网络挑战赛参赛者 网络挑战赛参赛者 - 自我介绍
- 本人女,毕业于内蒙古科技大学,担任文职专业,毕业专业英语。
 群组: 2018美赛大象算法课程 群组: 2018美赛护航培训课程 群组: 2019年 数学中国站长建 群组: 2019年数据分析师课程 群组: 2018年大象老师国赛优 |
4 N2 K! Y/ f' t3 q; E2020最新-精选基础算法100题(面试必备)
1 v$ v- s0 i6 P! \: B
* f' m" m: ]7 T$ B! u3 n7 J, R. U0x01.概述
# O8 `# i" y- h1 R作为一个程序员,算法能力必不可少,虽然不一定是算法工程师,但是算法还是彰显着个人的编码能力,面试中也经常会被问到,甚至会被要求临场做算法题,所以,还是好好积累吧。 q8 G; ^2 E- @8 L
3 e3 {/ ^9 h% m2 l6 Z' A& ?
+ Q9 G ?7 m8 L+ t8 @- Y/ L
个人其实对算法挺有兴趣的,从3月份开始,陆陆续续刷了一些算法题,把一些有意义的记录下来了,也顺便写了一些题解,个人认为,还是挺有收获的。. S& y* g' T k& Z0 U: }
之前写了一篇算法文章的目录,不过后来就忘了实时去更新了,于是现在,想把之前做过的一些有意义的算法题分享出来,刚好整理了100篇比较有意义的。希望对大家有所帮助。
0 p+ T3 c" a0 G4 M# b
+ ~+ ]- e, v( S+ {& i
+ n2 P* H4 I3 p$ F( J0 y. y+ h* H! e. d' s- a
+ U; w" u7 ]% t0x02.说明0 t( q8 y6 U5 f
关于语言的选择:
/ z0 g* {0 b. p0 Y" o
( Z9 _5 L5 l% _# _5 b) X9 |
5 C/ A) X5 _* }& N. A前半段主要用C++写的,后半段主要用Java写的。6 b! R2 ]. O# C. S
其实什么语言没有太大区别,主要是思想,用着顺手就行。2 k4 C( B# H, s- ~. S, q. Y% X* T
这里安利一波Java,哈哈,Java写算法题写多了,真的比较舒适。7 j1 n/ @0 ^, q% P2 B* c( \0 G: {4 ~4 q
关于文章类型的选择:
3 g3 M8 l: y3 e% ^5 Q# r! @8 v+ q
: I9 Q5 ^$ W c( L0 P
$ l3 f2 w6 d% i/ [. G选取了一些较为基本的算法类型,都是比较常见的。: w) w" r, S C
不涉及ACM等难度太高的题,大佬们移步哈。
1 k: i$ O" k% \4 n4 ^都是一些比较经典的问题。
2 t, h5 L: Y% o关于题目的来源:0 [& j& d" F7 o
: I8 E, }6 u- n [/ x: q
8 F$ x' o$ W0 `+ i平时主要刷题的平台是Leetcode,因为是函数式的,比较方便。
o: L& U7 g% _) I6 d! H& L; }- I还有一些是在《剑指offer》,《程序员面试金典》中看到比较好的,所有题目后面都给出了出处。$ X; E1 n5 ^. B$ {' d
关于题解的说明:
" L0 \% E6 B. I7 H
4 }% D: [4 F" S4 d; N9 u
, J9 G& V' [+ C* B题解是我自己所写,有时候也参考了一些官方题解的思想,可能更好理解。2 M% O$ J6 ]1 I9 T6 Y$ r
题解的代码都提交测试过的,保证暂时没有问题。8 W3 N4 h _3 U8 x% J6 v4 k7 _5 C
个人水平有限,可能文章里面存在一些问题,还望大佬多多指点。$ H- f4 H9 T: X
每个题目附带了原文链接,不喜欢阅读我题解的小伙伴们也可以直接移步原出处哈。
! s7 B+ a* {5 j/ c* |$ f8 h+ Y/ `关于算法能力提升的一些意见:
! C% h0 s/ i) ?* E5 l2 N
" ? Q$ T0 x3 B8 S- |% \4 _
& c+ D6 w5 p0 N1 v/ t3 Z+ C5 m! D个人认为,算法来说,思想最为重要,有算法的严谨思想,才是算法能力提升的基础。
( v% j# \/ V$ \6 @' M5 t( Q刷题就是培养算法思想的一种实际行动。0 I+ S7 C0 }- s3 l5 z7 k
好好理解透一个问题,或者一类问题,远胜于你麻木的刷大量的题。* R5 Y v. f: P [$ k
算法确实也有模板题,只需要照着模板就能做出,但问题是,照着模板就一定能做出来嘛,是否真正理解了为什么这个模板可以通用。
9 }! S" Q3 }# d$ W9 W# Q关于分类:9 Y1 z% h: X& }
. g5 q- d( r* i1 x) ]
7 l! P8 d6 r% e t4 D- r" S有些分类确实不太好分,所以就单独列出来了。0 V. c8 ]" _4 O3 Q- u# S% E
主要的还是区分开来了。7 O" c9 w( o5 A! y' j3 S
0x03.正文–精选算法100题(附个人题解). K0 ]0 N/ a5 E: c8 S& p, C# t" q( z
分类一:动态规划(dp)6 T4 L9 G# s6 ?* w) u$ [) M' \
没错,就是你熟悉的dp,dp说简单也简单,说难也实在是太难了,重点是如何找到里面的状态转移方程。经过这些题目的训练,希望你能有一些初步的dp思路了。
6 H3 ^" |& t+ J5 g) U6 j9 y* G4 O Z# b% P
0 _) n' P8 ?: s题目名称 来源 个人题解 备注; h: l; b2 d5 @2 I
01.打家劫舍 Leetcode题198:戳我前往 戳我前往 估计是最好的dp入门题型了
0 t& z' X! c% S8 O0 p% r$ I02.斐波拉契数列 经典问题 戳我前往 确实比较经典哦~
2 S a, `" B( @: Q% S H9 q) g c03.零钱兑换问题 Leetcode题322:戳我前往 戳我前往 也是一个比较经典的问题了8 ^3 {+ Y C: Z- {( s
04.零钱兑换II Leetcode题518:戳我前往 戳我前往 零钱问题通用解法
: S3 ?. y# W. _05.最长上升子序列 Leetcode题300:戳我前往 戳我前往 堪称数组dp中的典范- G# X3 ?9 _2 w4 |! ?
06.牌型种数 蓝桥杯:链接暂无 戳我前往 二维动态规划,要仔细想想
5 r* `. @) ^. j# i$ w E07.最低票价 Leetcode题983:戳我前往 戳我前往 如何状态转移?' b: y7 ]( U# I4 t" b
08.不同的二叉搜索树 Leetcode题152:戳我前往 戳我前往 你会发现dp的神奇之处
$ H7 w' J* q. b09.礼物的最大价值 《剑指offer》题47 戳我前往 优化dp的思路
' l/ L0 y! a" f5 e8 Y% g# l9 m5 h10.接雨水 Leetcode题42:戳我前往 戳我前往 需要仔细思考以发现dp
3 E( b. C7 f9 b4 ~5 Z" ^. b11.编辑距离 Leetcode题72:戳我前往 戳我前往 最为经典的二维dp题型' _6 K$ s! A8 p: n# N v
12.买卖股票的最佳时机(6题) Leetcode6题:戳我前往 戳我前往 统一化的dp思维,棒
2 O. B4 b; Z; O# C0 C) L/ w! _13.鸡蛋掉落 Leetcode题887:戳我前往 戳我前往 有些难度哦~
& h R' _ h* ]& Y+ F14.最大正方形 Leetcode题221:戳我前往 戳我前往 矩阵中的dp思路$ _) B+ \3 F+ ^1 v8 q
15.和为K的子数组 Leetcode题560:戳我前往 戳我前往 前缀和也是dp的思路2 F5 A0 c, l: B5 Z: J
分类二:搜索类(DFS,BFS,回溯,暴力搜索)1 F5 S1 y" [9 x1 t0 K+ D$ G
搜索类的算法题应该是随便哪个算法比赛都可以看到,虽然经典,但在这上面还是会有比较难的问题,所以,掌握基本思路和套路就显得格外重要。
9 y$ H6 f6 h+ l1 V7 Q8 I4 S8 X
( Y3 e* T/ a5 w# @9 e% D! \* d/ t
. _3 N5 x2 u, W题目名称 来源 个人题解 备注( m; I- w# w& d
16.图的深搜和广搜 经典问题 戳我前往 搜索中的经典问题/ \3 [! i, [9 A# v6 U1 G% ~
17.方格填数 蓝桥杯:链接暂无 戳我前往 揣摩一下DFS的思路
; T1 z5 v/ K" p% O/ T: u18.路径之谜 蓝桥杯:链接暂无 戳我前往 经典改编迷宫问题
4 k% h `' u, x; l1 O% x19.岛屿的最大面积 Leetcode题695:戳我前往 戳我前往 最常见的矩阵中的DFS1 {2 {' r1 X. h4 e
20.逃离大迷宫 Leetcode题1036:戳我前往 戳我前往 各种搜索思想都可以应用, o6 ^( t3 p7 M5 h- T* r5 b4 v
21.单词搜索 Leetcode题79:戳我前往 戳我前往 字符串中的搜索
) k3 `! i, @8 r; B p p* [22.检查网格中是否存在有效路径 Leetcode题1391:戳我前往 戳我前往 思考另类的搜索) E2 z, S. O2 k- X% q2 G, \
23.地图分析 Leetcode题1162:戳我前往 戳我前往 多源BFS
2 I8 M: Y8 y9 m! q* p' ~7 M24.机器人的运动范围 《剑指offer》13题 戳我前往 DFS进行计数的基本思路8 @, {* m s0 b# Q/ F2 F3 t8 ]: Y
25.括号生成 Leetcode题22:戳我前往 戳我前往 用DFS生产括号
) W' B4 t! |2 R6 `4 \26.01 矩阵 Leetcode题542:戳我前往 戳我前往 矩阵中的搜索% O! F$ {3 m3 |2 O
27.岛屿数量 Leetcode题200:戳我前往 戳我前往 根据需求使用DFS+ b+ \7 O y2 S/ `$ F
28.全排列问题 Leetcode题46:戳我前往 戳我前往 最经典的回溯算法
+ w6 |* E4 W* |% W" f/ B8 g分类三:字符串: b( p/ r* k6 |$ r
别忽视字符串的算法问题,它难起来可以非常难,简单的也很简单,面试喜欢提问,而且特别容易出错,需要引起重视。: J6 y# O/ X: i7 ?
" l% @6 x- a6 a- x! w
, d) Q4 z, {" B7 i- U% F6 S题目名称 来源 个人题解 备注
2 P5 s. o4 }) v) c7 D29.KMP算法 经典算法 戳我前往 经典字符串匹配算法
) `% x9 `* w8 X% ~2 r% P5 V9 Z30.拼写单词 Leetcode题1160:戳我前往 戳我前往 很简单的字符串问题
: `! S2 A( H: L/ {5 | `31.竖直打印单词 Leetcode题1324:戳我前往 戳我前往 简单但值得思考
# ^. |* u0 Z X2 I5 P- j1 T8 a( [/ h* A32.不含 AAA 或 BBB 的字符串 Leetcode题984:戳我前往 戳我前往 巧妙构造出字符串5 u2 r% F2 L; \& D. E
33.实现Trie(前缀树) Leetcode题208:戳我前往 戳我前往 字符串中经典的算法
3 C4 ^: q; h: x5 ]( z34.最长快乐前缀 Leetcode题1392:戳我前往 戳我前往 如何处理字符串的前后缀
2 r F1 C6 K, z) o35.单词搜索II Leetcode题212:戳我前往 戳我前往 前缀树的应用
& k4 |- H" W3 @( m" [3 T( r6 P9 U( Z36.单词的压缩编码 Leetcode题820:戳我前往 戳我前往 前缀树灵活运用
5 |- X3 E0 v; X: t( c/ x37.判定字符是否唯一 《程序员面试金典》01.02 戳我前往 简单但值得思考
9 X; j8 J7 b) X. m% o38.判定是否互为字符重排 《程序员面试金典》 01.02 戳我前往 简单的面试题
7 F- X9 E7 w) `- z39.无重复字符的最长子串 Leetcode题3:戳我前往 戳我前往 字符串中的滑动窗口, ^ r: }, Z, Y$ \1 f# z# E
40.字符串转换整数 Leetcode题8:戳我前往 戳我前往 需要考虑的细节很多
' O3 v! H# Y) L( H0 K: q41.翻转字符串里的单词 Leetcode题151:戳我前往 戳我前往 正则匹配# c- s& l$ N& x4 m( z
42.整数转换英文表示 Leetcode题273:戳我前往 戳我前往 非常实用的算法题; C! [7 q/ o+ ^- H+ i. \1 r
43.统计重复个数 Leetcode题466:戳我前往 戳我前往 循环结剪枝8 _' K& L$ ^* [0 c& U
44.超级回文数 Leetcode题906:戳我前往 戳我前往 字符串与大数的处理思路
8 k$ b! j: _6 \45.单词子集 Leetcode题96:戳我前往 戳我前往 特征思想的应用
5 I5 L! C* T. S分类四:容器类(哈希表,栈,队列,Map,Set)
! v: W- @& V5 q- p容器类的算法题一般需要根据一些容器的特点来解决响应的问题,还有需要选择合适的容器进行新的数据结构的设计,掌握它们的使用,非常重要。4 C) C! w- Q% B$ ~$ o0 _, E
7 {8 c" [2 J$ u; s8 I- [
0 o) i9 Y7 R9 s. M) t) X6 D
题目名称 来源 个人题解 备注8 {: N) o u4 z) g6 _5 d
46.按位与为零的三元组 Leetcode题82:戳我前往 戳我前往 哈希表优化) B+ Q3 S& d$ e) |% @* o, w, M
47.设计地铁系统 Leetcode题1396:戳我前往 戳我前往 合理选择容器
: G: r7 O* L9 f6 I: u48.LFU缓存 《程序员面试金典》 戳我前往 选择容器来设计/ p* }/ @$ O1 j
49.设计推特 Leetcode题355:戳我前往 戳我前往 很实用的算法* K, `4 n/ G" [ \' a! h4 N
50.最小栈 Leetcode题155:戳我前往 戳我前往 两栈设计最小栈/ h3 x3 i E3 y8 R) A
51.子数组的最小值之和 Leetcode题907:戳我前往 戳我前往 单调栈的应用; E4 I9 W* e4 {0 Y8 o2 \
52.栈的压入、弹出序列 《剑指offer》 戳我前往 栈的合法序列9 {$ v/ E5 ?) j9 Q& U
53.有效括号的嵌套深度 Leetcode题1111:戳我前往 戳我前往 模仿栈
7 g1 Y1 B+ k/ X% x/ N, H54.逆波兰算法 经典算法 戳我前往 后缀表达式关键算法
( v& T% _7 d, V( `分类五:数学思维类(含位运算思想)" t1 Z6 `9 D0 z* B; Y/ L
数学思维类的题由于需要很强大的数学思维,但是这又不是一天可以练成的,所以,也常常在面试中会被问到,只有慢慢的积累,才是王道。
2 H8 ^6 L) _ \ Z$ {3 j0 G4 a7 ], J0 S/ @; w8 g m
- i( d7 E$ \ w# ^
题目名称 来源 个人题解 备注& s+ Y" O) d# @0 ?
55.水壶问题 Leetcode题365:戳我前往 戳我前往 经典数学问题9 R7 i( o% H, g! u9 r0 I2 Z
56.三维形体的表面积 Leetcode题892:戳我前往 戳我前往 空间思想解决算法问题# E1 g# U+ x2 L
57.生命游戏 Leetcode题289:戳我前往 戳我前往 数学思维的运用( ]4 Z V F' w( d
58.交点 《程序员面试金典》16.03 戳我前往 二维平面的交点问题
' m. j8 u5 A" O7 E6 i* k2 h59.使数组唯一的最小增量 Leetcode题945:戳我前往 戳我前往 数学思维的运用3 t7 P; |! o/ o: G( I$ u8 m
60.数值的整数次方 《剑指offer》题16 戳我前往 非常容易出错的面试题 s. B8 @" X2 ~, C# L# X5 Y; D' t
61.求 1+2+…+n 《剑指offer》 戳我前往 短路原则* A' F# `- G% _% u# {
62.1~n整数中1出现的次数 《剑指offer》 戳我前往 数学思维找规律
# h. ?" h/ `5 R2 ]% F9 F8 M+ s5 q63.数组中数字出现的次数 《剑指offer》 戳我前往 分组异或8 [& U6 H4 {( D
分类六:链表
5 A {( S. y- [7 U! P V+ L链表是一种非常常见的数据结构,不管在实际应用还是算法竞赛中,都经常出现,掌握对它们的基本处理,非常重要。
' K6 ?: _6 t0 j" a
, q5 g$ x9 J) @0 n- {9 v& i+ q/ [ `5 N) P6 L
题目名称 来源 个人题解 备注
& m; M; Z4 Y5 e* r, s" H. b64.两数相加 Leetcode题2:戳我前往 戳我前往 链表的加法问题
) `, e6 t9 c8 d0 K+ l% s65.链表的中间结点 Leetcode题876:戳我前往 戳我前往 快慢指针思想5 i+ Q5 C5 D' f" v
66.删除链表的倒数第N个节点 Leetcode题19:戳我前往 戳我前往 哑节点和双指针
9 F0 y! S# P0 d4 m67.合并两个有序链表 Leetcode题21:戳我前往 戳我前往 链表的递归处理
6 _! I! V# f/ n3 s# h68.合并K个排序链表 Leetcode题23:戳我前往 戳我前往 优先队列的使用
; b2 s* @# m7 d3 S q: T: ^69.删除排序链表中的重复元素 II Leetcode题82:戳我前往 戳我前往 链表基础指针操作+ e5 U/ Y. D6 Z6 R8 w
70.分隔链表 Leetcode题86:戳我前往 戳我前往 双指针操作
- \* ^2 f& r. _2 h8 I" W; m+ T& `% _71.旋转链表 Leetcode题61:戳我前往 戳我前往 巧转循环链表
) A' [# R" G) {. n+ j) Y72.两两交换链表中的节点 Leetcode题24:戳我前往 戳我前往 递归解决
4 o$ u' v3 b7 k8 v( O73.反转链表 Leetcode题206:戳我前往 戳我前往 多种思路反转链表
$ Q2 x1 e* i" G8 x# g$ ]0 C74.K 个一组翻转链表 Leetcode题25:戳我前往 戳我前往 分组逆转
& o! @: S- D+ g8 S* P; I75.判断链表是否有环 《剑指offer》 戳我前往 多种思路判断链表是否有环
! H m3 S" Z* c4 b% {( s76.单链表的插入排序 Leetcode题147:戳我前往 戳我前往 链表的插入排序
4 X5 n& J, K0 k J! Y$ p77.两数相加 II Leetcode题445:戳我前往 戳我前往 用栈翻转链表元素
[. X7 E4 \; F! M分类七:树
* a+ S5 t% f' D6 m1 H+ E树也是一种非常重要的数据结构,因为很多容器的底层都设计到树,所以树也成了面试常问的重点了,你需要对他们的一些基本算法题,非常熟练。" h! k6 S3 X# r5 Z
) z1 Z/ I5 c8 |) `* E; B1 t( }
% l; e( s `6 s# A+ \' G4 l# W
题目名称 来源 个人题解 备注: Y) g1 [6 W# {8 u
78.删除给定值的叶子结点 Leetcode题1325:戳我前往 戳我前往 树的简单删除问题
3 g: `) e5 V* p' w; ?79.二叉树的最大最小深度 Leetcode题104:戳我前往 戳我前往 二叉树的深度问题3 R" K4 `" N$ p
80.将有序数组转换为二叉搜索树 Leetcode题108:戳我前往 戳我前往 数组和二叉树的转换
1 T' i3 Y2 G. m81.二叉树的右视图 Leetcode题199:戳我前往 戳我前往 二叉树的视图转换( |. j0 o. e0 [0 E
82.另一个树的子树 Leetcode题572:戳我前往 戳我前往 两树关系的判断
5 z( C: p" T5 Y' s' c$ E$ m83.二叉树的最近公共祖先 《剑指offer》 戳我前往 公共祖先问题
. u3 F+ n I/ D3 q84.二叉树的层序遍历序列存储 Leetcode题102:戳我前往 戳我前往 二叉树遍历序列的存储& `* T; Q/ w4 y( o& q
85.验证二叉搜索树 Leetcode题98:戳我前往 戳我前往 二叉搜索树的验证
% c/ i( y9 ~% k6 _分类八:数组(贪心,二分)
, T3 [6 K: }* u数组类的算法题也是,说难不难,说简单不简单,而且数组是平时编码用的最多的结构了,所以,需要对它的一些基本算法引起重视。+ [0 r+ o6 }$ {, K2 e
# l. D: u$ p. u1 C3 q
4 {/ f4 T ^8 q( c2 L" H5 C题目名称 来源 个人题解 备注
. K. b- q3 |6 T& D+ n0 |) L. e86.两个数组间的距离值 Leetcode题1385:戳我前往 戳我前往 二分法应用
+ u* K) G0 M# C$ D) N9 U87.旋转矩阵 《程序员面试金典》 戳我前往 原地修改
+ Z7 N( ]* ~0 [88.合并区间 Leetcode题56:戳我前往 戳我前往 排序处理数组问题
) P4 c5 g2 r" B0 a. A$ E. k* r89.跳跃游戏 Leetcode题55:戳我前往 戳我前往 贪心思想运用( t \7 p5 M& H ?" @$ `' o
90.盛最多水的容器 Leetcode题11:戳我前往 戳我前往 双指针* h7 W# J5 |& b
91.统计「优美子数组」 Leetcode题1248:戳我前往 戳我前往 滑动窗口
- p9 w p) Y1 k# v! _: @92.搜索旋转排序数组 Leetcode题33:戳我前往 戳我前往 二分搜索! X. L9 e) W1 B1 @& G0 H% K* J
93.山脉数组中查找目标值 Leetcode题1095:戳我前往 戳我前往 二分搜索
: I2 `& u6 k. X, [1 S94.快乐数 Leetcode题202:戳我前往 戳我前往 快慢指针判断成环思路& p" Y- @! j: o7 [
95.跳跃游戏 II Leetcode题45:戳我前往 戳我前往 贪心思想4 i1 U2 o1 R+ o: D/ r }1 `+ h
96.x 的平方根 Leetcode题69:戳我前往 戳我前往 二分法取平方根
5 A) f3 r# L- y' y9 X4 Y0 ]6 L7 W97.数组中的逆序对 《剑指offer》题51 戳我前往 归并中的计数(分治)
: p+ _! {8 W( |5 H98.课程表 II Leetcode题210:戳我前往 戳我前往 数组中的拓扑排序/ t) i& G0 w% I' h# ~/ {
分类九:经典算法列举% X( l6 }3 x2 V- J3 j$ I
最后两个,凑个整,刚好100,是一些比较经典的算法列举。
& N1 z% y7 r1 t# H6 U& s0 X
, V6 E$ }0 X9 h+ v0 x
% \9 b/ R" _" F& K& x题目名称 来源 个人题解 备注1 v+ x) b- ]4 b: ?! _
99.普利姆算法 经典算法 戳我前往 最小生成树经典算法2 Q5 t+ @# o+ ~1 X W# q
100.约瑟夫环 经典算法 戳我前往 很经典的动态问题
9 i, b8 s4 T, H! _# Y* G' n0x04.End* s0 G* @* B5 f0 R2 ^4 \' V% y
希望这100个算法题能对正在看的你有所帮助!
( W; @0 r& n5 R7 {2 d后续还会继续更新更多的内容。# I( l( N O$ W1 |6 p
您的支持,是我分享的不竭动力!- u% N, K, {4 |5 C0 N( z
5 }% {* P! @# \0 J& c$ P
, v8 \7 T2 y* F7 |2 l2 c– ATFWUS 2020-05-18
4 u `. @/ W$ H————————————————- w. P4 {3 B* C. ?8 ?' [
版权声明:本文为CSDN博主「ATFWUS」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。$ J' @5 t. e0 Q! g
原文链接:https://blog.csdn.net/ATFWUS/article/details/106193067
1 T, I D9 ^4 |/ ]/ ^( W8 y# I$ O2 U( s8 P/ K
1 J8 H- I; i8 ~; E$ Z* s |
zan
|