自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

cloud的博客

cloud的博客

  • 博客(398)
  • 收藏
  • 关注

原创 【C++基础】函数指针

顾名思义,函数指针是一个指向函数的指针。官方(《C++prime》)的定义如下:如下有一个普通函数:如果想声明 可以 指向该函数的指针的话,则用指针名如 (*p) 替换函数名 lengthCompare 即可,如:如上,p就是一个指向某个(并非一定要指向上面的普通函数,但是它可以指向上面的普通函数)函数的指针,这些函数的返回类型和形参列表都要被限制在函数指针指定的模式下,即函数需要传入两个引用类型的参数,返回的是一个bool类型的值。上面声明了一个函数指针,接下来我们使用如下几种方法使得函数指针指向一个

2022-06-24 10:51:46 608 1

原创 【STL源码剖析】STL六大组件功能与运用(目录)

简介: 各种数据结构,用来存放数据,如vector、list、deque(双端队列)、set、map等等【STL源码剖析】容器(待补充)简介: 各种STL提供的常用算法,如sort、search、copy、erase等等。从实现的角度来看,STL算法是一种方法模板(function template)【STL源码剖析】算法(待补充)简介: 迭代器扮演的是容器和算法之间的粘合剂,是所谓的“泛型指针”。从实现的角度来看,迭代器是一种将operator*,operator->,operator++,operato

2022-06-23 14:50:54 674

原创 【STL源码剖析】迭代器

STL的中心思想在于:将数据容器和算法分开,彼此独立设计,最后在以一胶合剂将它们连接在一起。auto_ptr是一种用来包装原生指针的对象,不需要自行释放内存,auto_ptr会自动释放内存,可以解决内存泄漏的问题实现一个迭代器:问题场景: 在算法中需要声明一个迭代器所指对象的类型(我们定义为value type)的变量,如何声明?解决办法: 利用function template的参数推导(argument deducation)机制在STL实现中,traits编程技术得到大量的运用,它利用了“内嵌类型

2022-06-23 14:00:00 523

原创 【STL源码剖析】配置器

“字典”:注释:主要是针对对象的构造和析构,在对象构造前,内存已经分配了,在对象析构后,内存才会被释放。空间的配置与释放的设计哲学:C++内存配置的基本操作 ::operator new() (全局函数)C++内存释放的基本操作 ::operator delete()(全局函数)它们的底层使用的是C语言的malloc()函数和free()函数完成的内存空间的配置与释放SGI的双层级设置器(为了解决碎片空间问题):第一级配置器(__malloc_alloc_template):直接使用 mallo

2022-06-23 13:57:34 657 2

原创 【STL源码剖析】仿函数

仿函数的作用:STL中提供的各种算法,往往有两个版本,其一就是最直观的默认的运算,其二则是运行用户以 “template参数来指定所要采取的策略” 。例如accumulate(),第一个版本是将指定范围内的所有元素相加,第二个版本则可以传入用户指定的操作,来替换这个相加的过程。要将这种指定的操作当做算法的参数传入算法,唯一的办法是将该操作设计为一个函数,再将函数指针当做算法的一个参数;或者将该操作设计为一个仿函数(实质上是一个class对象),再以该仿函数创建一个对象作为函数的参数传入函数中。仿函数的实质是

2022-06-23 13:52:37 417

原创 【STL源码剖析】容器

根据数据在容器中的排列特性,容器可以分为序列式容器和关联式容器:vector 的迭代器需要满足operator++、operator–、operator*、operator->、operator+、operator+=、operator-=等操作,且支持随机存取,因此vector提供的是Random Access Iterators。主要是维护以下三个迭代器:当容量不足时,vector 会扩容至当前的两倍大,如果还不够,就扩张至足够大的容量。扩容并插入 insert_aux() 源码:STL规范: 插

2022-06-23 13:49:17 655

原创 【数据结构】红黑树

证明:路径最短 ===》 只有黑色节点路径最长 ===》 每两个黑色节点之间加一个红色节点即:最长路径 = 最短路径 * 2 - 1所有的操作都是在操作一颗BST之后再维护红黑树特有的性质二叉搜索树的性质:左小右大红黑树中经常使用的操作:BST的左旋和右旋重点需要注意经过操作后,红黑树的定义有没有被破坏先按照BST的插入操作进行操作,然后分析如下几种情况。操作: 直接将插入节点的颜色涂成黑色即可(定义1)操作: 直接将插入节点的颜色涂成 红色 即可(为了维护定义5,因此这个新插入的节点不能是黑色)先将此节点

2022-06-21 13:01:39 1018

原创 [LeetCode]207. 课程表(C++实现)有向图求拓扑排序

思路(有向图求拓扑排序):详细的拓扑排序思路请见下方的 4. 可能有帮助的前置习题那么本题可以转换为:先将所有的节点关系转换为一副拓扑图求出所有点的入度,如果入度为0,则说明没有前置课程了,直接入队宽搜,依次出队,每出队时,将与之相连的下一个点的入度减1最后判断是否每个点都被遍历过,是则得到了一个拓扑序列,否则不存在拓扑序列有拓扑排序 ===》拓扑图无环实际解法步骤:定义邻接表,将所有边插入邻接表,构成一副拓扑图,如(a, b),即连接一条从a指向b的边定义每个节点的入度将入度为0的节点入队宽搜出队,出队时

2022-06-14 11:50:42 490

原创 [LeetCode]206. 反转链表(java实现)迭代法

思路(迭代法):本题最主要的是与,如下动画所示,就会很明确:---------------------------------------------------解法---------------------------------------------------可能存在的问题:经典面试题,推荐在理解的基础上背下来!

2022-06-02 14:09:51 225

原创 [LeetCode]205. 同构字符串(java实现)哈希表

思路(哈希映射):同一个字符只能映射到另一个字符上不能有两个字符映射到同一个字符上因此,解题思路:每次遍历两个字符串的同一个位置的字符如果哈希表存在映射关系,则取出哈希表的值看映射的值是否正确,不正确则返回false否则将映射关系存储进哈希表如果所有的值都遍历结束,则返回true。---------------------------------------------------解法---------------------------------------------------可能存在的问题:主

2022-06-02 13:54:27 207

原创 [JSON] JSON的序列化与反序列化及常用的关于JSON的注解

文章目录JSON的序列化与反序列化常用的关于JSON的注解@JsonIgnoreProperties注解@JsonCreator注解@JsonProperty注解JSON的序列化与反序列化由于前后端分离项目的流行,前端需要JSON字符串,而后端需要JavaBean对象,这时候就需要前后端在交互的时候,能够将JSON字符串和JavaBean对象相互转换,由此引出了JSON的序列化与反序列化简单来说:JSON的序列化指的就是将JavaBean对象转化为JSON格式的字符串JSON的反序列化指的

2022-04-29 11:22:11 3309

原创 [Kafka] Kafka如何保证消息不丢失、不重复?

[Kafka] Kafka如何保证消息不丢失、不重复Kafka基本架构Kafka如何保证消息不丢失、不重复Kafka消息的丢失和重复可能会发生在哪里?Kafka如何保证`生产者端`的消息不丢失、不重复?生产者端`丢失数据`的情况分析Kafka基本架构生产者Producer :生产信息;消费者Consumer :订阅主题、消费信息;代理Broker : 可以看作是一个独立的 Kafka 实例。多个 Kafka Broker 组成一个卡夫卡集群 Kafka Cluster;主题topic:可以理解

2022-04-27 16:45:48 8059 2

原创 [LeetCode]204. 计数质数(java实现)筛质数模板题、线性筛法

[LeetCode]204. (java实现)1. 题目2. 读题(需要重点注意的东西)3. 解法4. 可能有帮助的前置习题5. 所用到的数据结构与算法思想6. 总结1. 题目2. 读题(需要重点注意的东西)思路():3. 解法---------------------------------------------------解法---------------------------------------------------可能存在的问题:4. 可能有帮助的前置习题5. 所用到

2022-04-26 11:22:44 1866

原创 [LeetCode]203. 移除链表元素(java实现)next指针

[LeetCode]203. (java实现)1. 题目2. 读题(需要重点注意的东西)3. 解法4. 可能有帮助的前置习题5. 所用到的数据结构与算法思想6. 总结1. 题目2. 读题(需要重点注意的东西)思路():3. 解法---------------------------------------------------解法---------------------------------------------------可能存在的问题:4. 可能有帮助的前置习题5. 所用到

2022-04-26 11:02:18 729

原创 [LeetCode]202. 快乐数(java实现)快慢指针判断环

[LeetCode]202. (java实现)1. 题目2. 读题(需要重点注意的东西)3. 解法4. 可能有帮助的前置习题5. 所用到的数据结构与算法思想6. 总结1. 题目2. 读题(需要重点注意的东西)思路():3. 解法---------------------------------------------------解法---------------------------------------------------可能存在的问题:4. 可能有帮助的前置习题5. 所用到

2022-04-26 10:45:37 807

原创 [LeetCode]201. 数字范围按位与(java实现)按位与、二进制取第k位的方法

[LeetCode]201. (java实现)1. 题目2. 读题(需要重点注意的东西)3. 解法4. 可能有帮助的前置习题5. 所用到的数据结构与算法思想6. 总结1. 题目2. 读题(需要重点注意的东西)思路():3. 解法---------------------------------------------------解法---------------------------------------------------可能存在的问题:4. 可能有帮助的前置习题5. 所用到

2022-04-26 10:09:13 558

原创 [LeetCode]200. 岛屿数量(java实现)flood fill算法 dfs实现

[LeetCode]200. (java实现)1. 题目2. 读题(需要重点注意的东西)3. 解法4. 可能有帮助的前置习题5. 所用到的数据结构与算法思想6. 总结1. 题目2. 读题(需要重点注意的东西)思路():3. 解法---------------------------------------------------解法---------------------------------------------------可能存在的问题:4. 可能有帮助的前置习题5. 所用到

2022-04-26 09:31:06 638

原创 [LeetCode]199. 二叉树的右视图(java实现)宽度优先搜索bfs

[LeetCode]199. 二叉树的右视图(java实现)宽度优先搜索bfs1. 题目2. 读题(需要重点注意的东西)3. 解法4. 可能有帮助的前置习题5. 所用到的数据结构与算法思想6. 总结1. 题目2. 读题(需要重点注意的东西)思路(bfs):注意: 本题不是返回的右链,而是返回的是每一层的最右边的节点因此使用宽搜 bfs ,然后输出每一层最右边的节点即可。3. 解法---------------------------------------------------解法---

2022-04-25 20:12:28 365

原创 [LeetCode]198. 打家劫舍(java实现)动态规划

[LeetCode]192. 统计词频(java实现)1. 题目2. 读题(需要重点注意的东西)3. 解法4. 可能有帮助的前置习题5. 所用到的数据结构与算法思想6. 总结1. 题目2. 读题(需要重点注意的东西)思路():3. 解法---------------------------------------------------解法---------------------------------------------------可能存在的问题:4. 可能有帮助的前置习题5

2022-04-25 19:51:33 814

原创 [LeetCode]191. 位1的个数(java实现)位运算

[LeetCode]190. 颠倒二进制位(java实现)1. 题目2. 读题(需要重点注意的东西)3. 解法4. 可能有帮助的前置习题5. 所用到的数据结构与算法思想6. 总结1. 题目2. 读题(需要重点注意的东西)思路():3. 解法---------------------------------------------------解法---------------------------------------------------可能存在的问题:4. 可能有帮助的前置习题

2022-04-25 19:21:02 276

原创 [LeetCode]190. 颠倒二进制位(java实现)位运算

[LeetCode]190. 颠倒二进制位(java实现)1. 题目2. 读题(需要重点注意的东西)3. 解法4. 可能有帮助的前置习题5. 所用到的数据结构与算法思想6. 总结1. 题目2. 读题(需要重点注意的东西)思路():3. 解法---------------------------------------------------解法---------------------------------------------------可能存在的问题:4. 可能有帮助的前置习题

2022-04-25 19:13:32 690

原创 [LeetCode]189. 轮转数组(java实现)双指针算法

[LeetCode]189. 轮转数组(java实现)1. 题目2. 读题(需要重点注意的东西)3. 解法4. 可能有帮助的前置习题5. 所用到的数据结构与算法思想6. 总结1. 题目2. 读题(需要重点注意的东西)思路():3. 解法---------------------------------------------------解法---------------------------------------------------可能存在的问题:4. 可能有帮助的前置习题5

2022-04-25 18:52:36 580

原创 [AcWing] 1024. 装箱问题(C++实现)01背包问题

[AcWing] 1024. 装箱问题(C++实现)01背包问题1. 题目2. 读题(需要重点注意的东西)3. 解法4. 可能有帮助的前置习题5. 所用到的数据结构与算法思想6. 总结1. 题目2. 读题(需要重点注意的东西)读题:装箱需要体积 ===》 体积要求装箱体积最大,每一个箱子有自身的体积 ===》 价值且每一个箱子只有选或不选两种情况即:体积 ===》 体积体积===》 价值思路:将空间优化为二维:滚动数组优化方式与[AcWing] 2. 01背包问题(C++实现)

2022-04-21 10:24:20 629

原创 [AcWing] 423. 采药(C++实现)01背包问题

[AcWing] 423. 采药(C++实现)01背包问题1. 题目2. 读题(需要重点注意的东西)3. 解法4. 可能有帮助的前置习题5. 所用到的数据结构与算法思想6. 总结1. 题目2. 读题(需要重点注意的东西)读题:采每一株草药时间会减少 ===》 体积每一株草药有自身的价值 ===》 价值且每一株草药只有选或不选两种情况即:时间 ===》 体积价值 ===》 价值思路:将空间优化为二维:滚动数组优化方式与[AcWing] 2. 01背包问题(C++实现)0-1背包问

2022-04-21 09:51:32 1651

原创 [AcWing] 187. 导弹防御系统(C++实现)最长上升子序列模型+贪心+dfs爆搜

[AcWing] 187. 导弹防御系统(C++实现)最长上升子序列模型+贪心+dfs爆搜1. 题目2. 读题(需要重点注意的东西)3. 解法4. 可能有帮助的前置习题5. 所用到的数据结构与算法思想6. 总结1. 题目2. 读题(需要重点注意的东西)读题:在[AcWing] 1010. 拦截导弹(C++实现)最长上升子序列模型+贪心的基础上,多了一个条件:导弹拦截系统可以是 严格上升 的子序列,也可以是 严格下降 的子序列,题目中给出的数各不相同。思路: 最长上升子序列 + 贪心 + dfs

2022-04-17 20:00:17 1298

原创 [AcWing] 1010. 拦截导弹(C++实现)最长上升子序列模型+贪心

[AcWing] 1010. 拦截导弹(C++实现)最长上升子序列模型+贪心1. 题目2. 读题(需要重点注意的东西)3. 解法4. 可能有帮助的前置习题5. 所用到的数据结构与算法思想6. 总结1. 题目2. 读题(需要重点注意的东西)读题:每来一个导弹有两种选择:接在现有某个导弹拦截系统之后创建一个新的导弹拦截系统我们希望一个导弹拦截系统拦截的导弹足够的多(贪心),那么如果要将这个导弹加到某一个导弹拦截系统之后的话,我们需要从现有的所有导弹拦截系统中,找到一个结尾大于当前导

2022-04-17 17:21:02 1786

原创 [Kafka] Kafka基本架构

[Kafka] Kafka基本架构[Kafka] Kafka基本架构[Kafka] Kafka基本架构生产者Producer :生产信息;消费者Consumer :订阅主题、消费信息;代理Broker : 可以看作是一个独立的 Kafka 实例。多个 Kafka Broker 组成一个卡夫卡集群 Kafka Cluster;主题topic:可以理解为一个队列, 生产者和消费者面向的都是一个 topic, Producer 将消息发送到特定的主题,Consumer 通过订阅特定的主题来消费消息;

2022-04-13 08:11:41 1296

原创 [SpringBoot] 自动装配原理分析

[SpringBoot] 自动装配原理分析什么是自动装配自动装配原理分析@SpringBootApplication@SpringBootConfiguration`@EnableAutoConfiguration`@AutoConfigurationPackage@Import(AutoConfigurationImportSelector.class)什么是自动装配我们在使用SpringBoot的时候,SpringBoot会自动帮我们进行如下配置:自动配置好Tomcat自动配置好SpringM

2022-04-12 21:34:48 1045 1

原创 [Nginx] 常见的负载均衡算法及限流算法

[Nginx] 常用的负载均衡算法及限流算法常用的负载均衡算法1. 轮询算法按照时间顺序逐一轮换访问每台服务器2. 权重给服务器不同的权重,使得访问服务器的分布呈所给定的权重3. ip绑定法让来自同一ip地址的用户访问相同的服务器,可以有效解决动态网络存在的session共享问题Session和Cookies的区别Session—存储在服务器端Session在服务器上的临时目录中创建一个文件,该文件用于存储已注册的Session变量。在访问期间,Session变量数据将可用于网站上的所有

2022-04-12 21:32:28 3089

原创 [AcWing] 1016. 最大上升子序列和(C++实现)最长上升子序列模型

[AcWing] 1016. 最大上升子序列和(C++实现)最长上升子序列模型1. 题目2. 读题(需要重点注意的东西)3. 解法4. 可能有帮助的前置习题5. 所用到的数据结构与算法思想6. 总结1. 题目2. 读题(需要重点注意的东西)读题:思路:3. 解法---------------------------------------------------解法---------------------------------------------------可能存在的问题4.

2022-04-12 11:50:03 200

原创 [AcWing] 1012. 友好城市(C++实现)最长上升子序列模型、较为特殊

[AcWing] 1012. 友好城市(C++实现)最长上升子序列模型1. 题目2. 读题(需要重点注意的东西)3. 解法4. 可能有帮助的前置习题5. 所用到的数据结构与算法思想6. 总结1. 题目2. 读题(需要重点注意的东西)读题:思路:3. 解法---------------------------------------------------解法---------------------------------------------------可能存在的问题4. 可能有帮

2022-04-12 11:00:42 1369

原创 [AcWing] 482. 合唱队形(C++实现)最长上升子序列模型

[AcWing] 482. 合唱队形(C++实现)最长上升子序列模型1. 题目2. 读题(需要重点注意的东西)3. 解法4. 可能有帮助的前置习题5. 所用到的数据结构与算法思想6. 总结1. 题目2. 读题(需要重点注意的东西)读题:身高的排列如下:问:计算最少需要几位同学出列 ===》 最多有多少同学可以构成合唱队形,即求正反向的最长上升子序列之和!思路:具体思路与[AcWing] 1014. 登山(C++实现)最长上升子序列模型、求正反向最长上升子序列之和相同,在此不再赘述。3.

2022-04-12 10:35:59 1000

原创 [AcWing] 1014. 登山(C++实现)最长上升子序列模型、求正反向最长上升子序列之和

[AcWing] 1014. 登山(C++实现)最长上升子序列模型1. 题目2. 读题(需要重点注意的东西)3. 解法4. 可能有帮助的前置习题5. 所用到的数据结构与算法思想6. 总结1. 题目2. 读题(需要重点注意的东西)读题:① 每次所浏览景点的编号都要大于前一个浏览景点的编号 ===》 单调 ② 一旦开始下山,就不再向上走了 ===》 可以反向③ 尽可能多的浏览景点 ===》 最长单调 + 最长 ===》 最长上升子序列模型最长上升子序列模型 + 可以反向 ===》

2022-04-12 10:22:50 779

原创 [AcWing] 1017. 怪盗基德的滑翔翼(C++实现)最长上升子序列模型

[AcWing] 1017. 怪盗基德的滑翔翼(C++实现)最长上升子序列模型1. 题目2. 读题(需要重点注意的东西)3. 解法4. 可能有帮助的前置习题5. 所用到的数据结构与算法思想6. 总结1. 题目2. 读题(需要重点注意的东西)读题:只能选择一个方向下降,可以选则正向、可以选择反向所选择的楼是呈现单调下降的(反过来就是单调上升的)即无论正向和反向,都可以看成求最长上升的子序列,即在每个节点正向求一遍最长上升子序列、再反向求一遍最长上升子序列,最后取max得到最大的

2022-04-12 09:37:13 1378

原创 [Redis] 缓存穿透、缓存击穿、缓存雪崩及解决办法剖析

[Redis] 缓存穿透及缓存雪崩缓存穿透定义:什么是缓存穿透解决办法布隆过滤器缓存空对象缓存击穿解决办法设置热点数据永不过期给MySQL访问加互斥锁缓存雪崩定义:什么是缓存雪崩解决办法Redis高可用(设计Redis集群,即主从复制)限流降级数据预热缓存穿透定义:什么是缓存穿透当我们查询一个数据的时候,我们会首先查询Redis数据库中是否有该数据,如果没有的话才会向持久化数据库中进行查找(一般是MySQL数据库),如果我们的同时访问该数据的用户数量过多(如双十一秒杀活动,千万条请求会涌向同一个数据)

2022-04-11 20:47:18 780

原创 [Redis] 主从复制及原理探析

[Redis] 主从复制及原理探析主从复制定义作用主从复制的工作流程(三阶段)准备阶段(建立连接)数据同步阶段(全量复制)命令传播阶段(增量复制)哨兵模式主从复制定义读写分离 主从复制!主机master处理写操作、从机follower处理读操作,因为80%的操作都是读操作,我们就将读和写进行分离,从而减缓服务器的压力!一般是一主二从,构成一个Redis集群。因此主机的数据要复制到其他的从机中,这就引出了主从复制的概念:作用主从复制的作用包括:数据冗余:实现了数据的热备份负载均衡:用多台服

2022-04-11 20:03:21 734

原创 [Spring] IoC的理解及三种依赖注入方式

[Spring] IoC的理解及三种依赖注入方式Spring---IoC的理解及三种依赖注入方式IoC是什么意思依赖控制反转Spring提供的依赖注入的三种方式setter注入(属性注入)构造器注入p命名空间注入(工厂方法注入)@AutowiredSpring—IoC的理解及三种依赖注入方式IoC是什么意思IoC,即控制反转,依赖注入(DI)是SpringIoC的一个具体体现,因此,我们可以通过DI(依赖注入)来理解什么是IoC。要理解什么是依赖注入,首先就要知道什么是依赖。依赖定义: 例如在类

2022-04-11 18:53:22 6789 1

原创 [AcWing] 1027. 方格取数(C++实现)数字三角形模型扩展题

[AcWing] 1027. 方格取数(C++实现)数字三角形模型1. 题目2. 读题(需要重点注意的东西)3. 解法4. 可能有帮助的前置习题5. 所用到的数据结构与算法思想6. 总结1. 题目2. 读题(需要重点注意的东西)读题:从左上角走到右下角走2条路(只能向下走和向右走)求路径和的最大值(走过相同的结点时只计算一次)思路:满足数字三角形模型的特征!即在[AcWing] 1015. 摘花生(C++实现)数字三角形模型模板题的基础上,新增了一个条件:即可以走两条路径,但是

2022-04-11 09:44:46 321

原创 [AcWing] 1018. 最低通行费(C++实现)数字三角形模型

[AcWing] 1018. 最低通行费(C++实现)数字三角形模型1. 题目2. 读题(需要重点注意的东西)3. 解法4. 可能有帮助的前置习题5. 所用到的数据结构与算法思想6. 总结1. 题目2. 读题(需要重点注意的东西)读题: 从左上角走到右下角,商人必须在 (2N−1) 个单位时间穿越出去===》即只能向右或者向下走,走到终点时的最小值是多少?思路:因此本题满足数字三角形模型的特征;相当于在[AcWing] 1015. 摘花生(C++实现)数字三角形模型模板题的基础上进行了变换

2022-04-11 09:01:46 371

原创 [AcWing] 1015. 摘花生(C++实现)数字三角形模型模板题

[AcWing] 896. 最长上升子序列 II(C++实现)数字三角形模型模板题1. 题目2. 读题(需要重点注意的东西)3. 解法4. 可能有帮助的前置习题5. 所用到的数据结构与算法思想6. 总结1. 题目2. 读题(需要重点注意的东西)读题: 从左上角走到右下角,只能向右或者向下走,走到终点时的最大值是多少?思路:3. 解法---------------------------------------------------解法--------------------------

2022-04-10 21:55:18 765

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除