自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(56)
  • 资源 (1)
  • 收藏
  • 关注

原创 常用的二十种设计模式(下)-C++

设计模式是一种通用的解决问题的模板或蓝图,它们用于解决特定类型的问题,并为软件设计提供了可重用的解决方案。创建型模式(Creational Patterns):这些模式关注对象的创建机制,以便以适当的方式创建对象,隐藏创建的细节。单例模式(Singleton Pattern)工厂模式(Factory Pattern)抽象工厂模式(Abstract Factory Pattern)建造者模式(Builder Pattern)原型模式(Prototype Pattern)结构型模式。

2023-10-19 01:30:48 717

原创 常用的二十种设计模式(上)-C++

C++中常用的设计模式有很多,设计模式是解决常见问题的经过验证的最佳实践。这些设计模式都有特定的应用场景,可以根据问题的性质选择合适的设计模式来解决。设计模式有助于提高代码的可维护性、可扩展性和复用性。

2023-10-17 00:35:18 528

原创 李宏毅2021春季机器学习课程视频笔记14-Transformer

Transformer实际上就是变形金刚,其与Bert实际类似。其实际上就是一个Sequence-to-Sequence的模型,其输出的长度并不是由人为指定,而是由机器自行确定。Transformer的基本结构,如上图所示,主要由一个Encoder和一个Decoder组成,一般将输入序列通过Encoder进行处理,处理完成后给到Decoder,由Decoder来确定输出向量。

2023-04-14 14:51:09 481

原创 李宏毅2021春季机器学习课程视频笔记13-自注意力机制

,模型的输出为一个数值或者一个类别。将考虑整个Sequence信息的向量输入到Self-Attention中,输出对应个数的向量,并将其输出的向量作为全连接层的输出,最后输出标签,多次重复此过程即可。对一段语音信号进行处理,可以选取一个固定长度的滑动窗口,把一个滑动窗口内部的数据可以称为语音数据的一个帧,按照预定的步长移动这个窗口就可以得到这一段语音信号对应的向量集。这类方法虽然可以实现对所有的单词的表示,但是其向量的长度过长不利于后续数据处理,其次其也没有包含单词间关系的其他任何有意义的信息。

2023-04-13 22:42:47 413

原创 李宏毅2021春季机器学习课程视频笔记13-Spatial Transformer Layer

加一个Layer可以实现对输入进行旋转缩放,这个Layer就是Spatial Transformer.来关注鸟的不同位置的特征。红色方框关注鸟嘴,绿色的方框关注鸟的身体。利用神经网络实现对Feature Map的平移和变换。图像转换(Image Transformation)在实际中使用该方法时候需要进行插值,不要直接将。,而是将其value设置为与其周围四个。)对缩放和旋转不是一成不变的!的距离,与双线性差值类似。对输入的图像做相应的。

2023-04-11 16:39:32 81

原创 李宏毅2021春季机器学习课程视频笔记12-为什么要深度学习(why Deep Learning?)

深度学习之所以可以做到鱼与熊掌兼得,就是因为其虽然具有了复杂的模型结构,但是其依赖的数据也变多了,随着数据增多,理想与现实之间差异逐步缩小,理想就可以很好的对现实进行预测表示。得到结论:在进行深度学习时候需要大量的资料,但是如果不采用深度学习架构,想要获得同样的拟合函数需要更大规模的网络与参数,因此选择采用深度学习是具有理论的合理性的。只有有一个Hidden_Layer就可以拟合所有函数,提出质疑,为什么还需要。只要绿色得点够多,被切得线段足够多,就可以尽可能得去拟合这个曲线得形状。

2023-04-10 17:05:32 87

原创 深度学习小问题解答-为什么使用了验证集模型还是会过拟合?

当我们的训练数据与实际数据之间存在理想与现实之间很大的差异时,模型就会出现严重的过拟合问题,模型中可以选择的Function的candidate就有多少,可选择的模型的Function的candidate越多模型就越容易产生过拟合。实际上validation也可以被视为一种训练,常规的train的过程就是在train的数据集上找到一个最优的Loss,在具有最优Loss的条件下得到模型相应的参数。validation过程就实际上相当于挑选在validation数据上Loss最优的结果。

2023-04-10 15:48:15 112

原创 李宏毅2021春季机器学习课程视频笔记11-卷积伸进网络(CNN)

围棋问题中的下棋任务就可以划分为一个分类任务,其共有19*19个类别,可以采用全连接神经网络来进行解决,但是采用CNN的效果会更好,将棋盘视作为19*19的matrix,在Alpha Go中每个位置由48个chanel构成。Pooling的使用在减少模型计算量的同时,也会使得原始数据一些细微的特征被忽视,从而不能被考虑到,近些年随着计算能力的提升,模型的Pooling层使用会越来越少。利用参数共享机制减少模型的中的参数数目,参数是相同的,但是输入是不同的,因此输出也是不一样的。会出现在图像的不同区域中。

2023-04-10 15:16:50 322

原创 李宏毅2021春季机器学习课程视频笔记10-针对于深度学习的模型优化

正则化项是否要被加入到模型的损失函数更新过程中,(实际并没有标准答案)为什么这些优化算法都是在2014年左右提出来的?因为SGDM比较稳定,Adam算法收敛速度比较快。为什么大家的优化算法都是Adam和SGDM?

2023-04-10 10:44:49 39

原创 李宏毅2021春季机器学习课程视频笔记9-再谈宝可梦分类器

直观的解释就是当训练数据集与实际真是数据分布越接近,那么对任意一个模型在训练数据上的表现与模型在测试数据中的表现应该都相差不大。的取值越来越小时候,训练数据得到的模型是坏的几率就会变小,但是与此同时就是导致h的可选空间急剧变小,因此很难选择得到一个有效的。当训练样本并不能很好的代替这个样本的时候, 可能得到的模型在训练数据集上具有不错的表现,但是在实际的数据中有很糟糕的表现。理想是获得所有的样本数据,但是在实际中并不可能获得所有的数据,因此需要用Dtrain来代替所有的数据。的可调都是存在矛盾的)

2023-04-08 15:04:10 283

原创 李宏毅2021春季机器学习课程视频笔记8-模型训练不起来问题(分类,Loss对结果也会有影响)

直接将 Class用数字表示会存在问题,因为这样就会默认class1和class2之间更接近,而其与class3之间的关系更远。class之间一般采用one-hot方法来进行编码。从图中可以看到,使用MSE当损失函数的初值出现在距离目标点较远的位置时,损失函数的梯度很小,基本接近于0,在训练过程中很难对参数进行有效更新找到目标位置。这里这个问题的详解,在之前的选修课内容已经讲解(按最大似然估计求得)。,同时也会让大的数值与小的数值差距更大。

2023-04-08 13:38:07 44

原创 李宏毅2021春季机器学习课程视频笔记7-模型训练不起来问题(自动调整学习率)

在没有使用自适应的学习率时候,在下图右下角中,在训练中模型的梯度开始很大时候,叠加的次数还比较小,整个学习率相对较大,Loss快速的下降,但是当在平缓的地方,长时间的小梯度就会导致模型的学习率暴增,突然出现向左右两侧喷射的现象,但是也会逐步收敛回来。不同的学习率设置:当损失函数关于参数下降比较陡的时候,设置比较大的学习率,当下降比较平缓的时候就采用比较小的学习率,同时学习率的设置与参数有关,与迭代的次数也有关。是关于时间的参数,随着时间进行,模型的训练逐步完成,并更新参数,使得。

2023-04-08 12:00:53 319

原创 李宏毅2021春季机器学习课程视频笔记6-模型训练不起来问题(Batch和Momentum)

实际计算中,并不会把每个样本单独拿出来做参数的更新,实际是按照来做,为各个参数选择不同的初值 ,其次依次计算每个的梯度,并对参数更新(都是按照来进行计算)。所有的Batch计算一次叫做一个epoch。

2023-04-07 23:08:26 47

原创 李宏毅2021春季机器学习课程视频笔记5-模型训练不起来问题(当梯度很小的时候问题)

三维空间这个石棺是封闭的,但是在高维空间里石棺可能是非封闭的,取到里面的东西。推广到损失函数形状,在二维空间中可能是一个Local Minima,但是转换到三位空间中其可能就是一个Saddle Point。时,表明这一点为Local Minima,如果有小于0的Value就表明这是一个Saddle Point。求解最小Loss的失败,不能得到最优的值,找不到Loss足够小的值。矩阵会告诉我们参数更新的方向。如何知道走到了哪个点?

2023-04-07 22:40:42 237

原创 李宏毅2021春季机器学习课程视频笔记4-机器学习任务攻略

更容易获取到最优值,从理论上来说更复杂的模型可以cover简单模型,并且一定可以有至少不差于简单模型的结果(如果更复杂的模型不能获得更优的结果就表明这是优化存在问题,可以在优化上解决问题)。产生了一个矛盾的问题:随着模型的复杂度提升,模型训练损失函数越来越小,模型的测试集的损失函数会随着模型复杂度增加先降低再升高。也会比较容易产生过拟合问题,下图中左图为得到的训练模型,右图为实际模型(实际模型比较。2.为模型增加一些限制,不要让模型有那么多的。Mismatch问题如何解决?如果模型的损失函数很大,定义的。

2023-04-07 17:42:53 243

原创 李宏毅2021春季机器学习课程视频笔记3-逻辑回归

解答:选择使用均方根误差(Linear Regression),误差的导数在接近最小值时候会取值到0,但是当取值特别大,远远偏离正确数值情况下,其导数也会接近于0,这对梯度下降更新参数不利,导致模型不能有效训练。这里为什么在logistic回归中为什么不直接采用Linear Regression中的Loss函数?为什么在logistic回归中为什么不直接采用Linear Regression中的Loss函数?哪一个找出来的参数更好呢?(从图中看到判别式模型的分类精度更高)实际上就是多层感知机的最初原型。

2023-04-06 23:22:02 172

原创 李宏毅2021春季机器学习课程视频笔记2-分类神奇宝贝

一个问题中的几个高斯分布一般都不会有自己均值和协方差矩阵,一般情况下会有自己的均值,但是会共享协方差矩阵(协方差矩阵随着数据的feature size 的怎加以平方的速度怎加,参数太多会导致模型产生比较严重的过拟合),可以在很大程度上减少模型参数。共享协方差矩阵时候,不同类别之间的boundary变成了一条直线(找到相应的高斯分布使得其Sample出这些点的概率最大,也就是。假设所有水系神奇宝贝都是从一个更高维的高斯分布中采样得到的。计算得到高斯分布参数(两个类别的参数)取得所有x的平均值得到最大L。

2023-04-06 19:59:09 258

原创 李宏毅2021春季机器学习课程视频笔记1-预测宝可梦

将Regulation来平滑Loss函数。(PS:不用加入bias,因为bias对Loss的平滑度没有影响,只是单纯的截距变化)。利用线性代数直接求解。根据物种信息进行判别。

2023-04-06 13:24:51 135

原创 关于使用C/C++在堆上开辟数组(一维数组和二维数组)

自己前两天面试的时候被面试官要求手写在堆上开辟二维数组并释放,自己之前一直用C++stl的库,很久不写了,居然没有写出来,大写的尴尬。今天特意总结一下#include<iostream>#include<stdio.h>#include<stdlib.h>using namespace std;void dynamic1D_malloc();void dynamic1D_new();void dynamic2D_malloc();void dynam

2022-03-24 11:35:16 2125 1

原创 Momenta-C++研发实习生(一面)

因为现在研二了,研究生期间没有做什么太多和互联网相关的项目,自己最近一直在投实习的简历,想找一份暑期实习来提升自己的coding水平,同时增加一点项目经验。在实习生投了简历很快hr就联系我了,告知我准备一面(30min电话面试)今天刚刚面试完,感觉有点凉,写个面经。1.上来就是一个简单的一个自我介绍,介绍完以后面试官让说一说自己简历上项目,我在介绍项目说到一半被面试官打断,问了一些问题;2.问了自己语言(C++),自己之前用过一些python,也简单的问了一下,关于C++版本;3.自己项目中

2022-03-04 15:00:42 1616 3

原创 每日一题-25-和为K的子数组

每日一题-25-和为K的子数组和为K的子数组给定一个整数数组和一个整数 **k,**你需要找到该数组中和为 k 的连续的子数组的个数。示例 1 :输入:nums = [1,1,1], k = 2输出: 2 , [1,1] 与 [1,1] 为两种不同的情况。说明 :数组的长度为 [1, 20,000]。数组中元素的范围是 [-1000, 1000] ,且整数 k 的范围是 [-1e7, 1e7]。1.我们直接使用暴力求解,我们去查找数组中的所有子串,然后如果子串的和为k,这时候我们就将

2021-05-21 11:24:52 209

原创 每日一题-24-找到所有数组中消失的数字

每日一题-24-找到所有数组中消失的数字找到所有数组中消失的数字给定一个范围在 1 ≤ a[i] ≤ n ( n = 数组大小 ) 的 整型数组,数组中的元素一些出现了两次,另一些只出现一次。找到所有在 [1, n] 范围之间没有出现在数组中的数字。您能在不使用额外空间且时间复杂度为*O(n)*的情况下完成这个任务吗? 你可以假定返回的数组不算在额外空间内。示例:输入:[4,3,2,7,8,2,3,1]输出:[5,6]1.首先这个题目在不做内存要求的情况下,很容易实现,我们创建一个哈

2021-05-21 10:17:16 99

原创 每日一题-23-最短无序连续子数组

每日一题-23-最短无序连续子数组最短无序连续子数组给你一个整数数组 nums ,你需要找出一个 连续子数组 ,如果对这个子数组进行升序排序,那么整个数组都会变为升序排序。请你找出符合题意的 最短 子数组,并输出它的长度。示例 1:输入:nums = [2,6,4,8,10,9,15]输出:5解释:你只需要对 [6, 4, 8, 10, 9] 进行升序排序,那么整个表都会变为升序排序。示例 2:输入:nums = [1,2,3,4]输出:0示例 3:输入:nums = [1]输

2021-05-20 11:37:01 251 1

原创 每日一题-22-汉明距离

每日一题-22-汉明距离汉明距离两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。给出两个整数 x 和 y,计算它们之间的汉明距离。注意:0 ≤ x, y < 231.示例:输入: x = 1, y = 4输出: 2解释:1 (0 0 0 1)4 (0 1 0 0) ↑ ↑上面的箭头指出了对应二进制位不同的位置。直接利用二进制的运算性质,我们通过对他们的余数和商进行判别就可以实现。代码class Solution {p

2021-05-20 11:28:28 232

原创 每日一题-21-每日温度

每日一题-21-每日温度每日温度请根据每日 气温 列表,重新生成一个列表。对应位置的输出为:要想观测到更高的气温,至少需要等待的天数。如果气温在这之后都不会升高,请在该位置用 0 来代替。例如,给定一个列表 temperatures = [73, 74, 75, 71, 69, 72, 76, 73],你的输出应该是 [1, 1, 4, 2, 1, 1, 0, 0]。提示:气温 列表长度的范围是 [1, 30000]。每个气温的值的均为华氏度,都是在 [30, 100] 范围内的整数。1.我们可以

2021-05-19 19:38:49 219

原创 每日一题-20-二叉树的直径

每日一题-20-二叉树的直径二叉树的直径给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过也可能不穿过根结点。示例 :给定二叉树 1 / \ 2 3 / \ 4 5 返回 3, 它的长度是路径 [4,2,1,3] 或者 [5,2,1,3]。** 注意: ** 两结点之间的路径长度是以它们之间边的数目表示。** 这条路径可能穿过也可

2021-05-19 19:19:15 172

原创 每日一题-17-合并二叉树-任务调度器

每日一题-17-合并二叉树-任务调度器任务调度器给你一个用字符数组 tasks 表示的 CPU 需要执行的任务列表。其中每个字母表示一种不同种类的任务。任务可以以任意顺序执行,并且每个任务都可以在 1 个单位时间内执行完。在任何一个单位时间,CPU 可以完成一个任务,或者处于待命状态。然而,两个 相同种类 的任务之间必须有长度为整数 n 的冷却时间,因此至少有连续 n 个单位时间内 CPU 在执行不同的任务,或者在待命状态。你需要计算完成所有任务所需要的 最短时间 。示例 1:输入:tasks

2021-05-18 15:35:07 92

原创 每日一题-19-回文子串

每日一题-19-回文子串回文子串给定一个字符串,你的任务是计算这个字符串中有多少个回文子串。具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被视作不同的子串。示例 1:输入:"abc"输出:3解释:三个回文子串: "a", "b", "c"示例 2:输入:"aaa"输出:6解释:6个回文子串: "a", "a", "a", "aa", "aa", "aaa"提示:输入的字符串长度不会超过 1000 。解题1.使用一个中心扩展方法,由于一个回文子串它的子串也

2021-05-18 15:34:05 148

原创 每日一题-18-相交链表

每日一题-18-相交链表相交链表编写一个程序,找到两个单链表相交的起始节点。如下面的两个链表**:**在节点 c1 开始相交。示例 1:输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = 3输出:Reference of the node with value = 8输入解释:相交节点的值为 8 (注意,如果两个链表相交则不能为 0)。从各自的表头开始算起,链表 A 为 [

2021-05-18 15:33:18 44

原创 每日一题-16-合并二叉树

每日一题-16-合并二叉树合并二叉树给定两个二叉树,想象当你将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠。你需要将他们合并为一个新的二叉树。合并的规则是如果两个节点重叠,那么将他们的值相加作为节点合并后的新值,否则不为 NULL 的节点将直接作为新二叉树的节点。示例 1:输入: Tree 1 Tree 2 1 2

2021-05-17 16:30:48 67

原创 每日一题-15-删除链表的倒数第 N 个结点

标题每日一题-15-删除链表的倒数第 N 个结点题目:删除链表的倒数第 N 个结点给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。进阶:你能示例 1:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jk8AZUn0-1621146305427)(https://assets.leetcode.com/uploads/2020/10/03/remove_ex1.jpg)]输入:head = [1,2,3,4,5], n = 2输出:[1,2,3,5]

2021-05-16 14:26:50 70

原创 每日一题-14-最小栈

每日一题-14-最小栈题目最小栈难度简单903设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。push(x) —— 将元素 x 推入栈中。pop() —— 删除栈顶的元素。top() —— 获取栈顶元素。getMin() —— 检索栈中的最小元素。示例:输入:["MinStack","push","push","push","getMin","pop","top","getMin"][[],[-2],[0],[-3],[],[],[],[]]

2021-05-16 14:06:03 39

原创 每日一题-13-电话号码的字母组合

每日一题-13-电话号码的字母组合电话号码的字母组合给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例 1:输入:digits = "23"输出:["ad","ae","af","bd","be","bf","cd","ce","cf"]示例 2:输入:digits = ""输出:[]示例 3:输入:digits = "2"输出:["a","b","c"]提

2021-05-15 17:49:39 202 3

原创 每日一题-12-环形链表

每日一题-12-环形链表环形链表给定一个链表,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅是为了标识链表的实际情况。如果链表中存在环,则返回 true 。 否则,返回 false 。进阶:你能用 O(1)(即,常量)内存解决此问题吗?示例 1:输入:he

2021-05-15 17:43:59 48

原创 每日一题-11-只出现一次的数字

每日一题-11-只出现一次的数字只出现一次的数字给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1示例 2:输入: [4,1,2,1,2]输出: 41.引入一个计数变量,并对原来的vector进行排序,然后去遍历整个队列,实现对只出现一次的数字进行查找class Solution {public: int s

2021-05-14 11:40:44 50

原创 每日一题-10-盛水最多的容器

每日一题-10-盛水最多的容器盛最多水的容器给你 n 个非负整数 a1,a2,...,a``n,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。**说明:**你不能倾斜容器。示例 1:输入:[1,8,6,2,5,4,8,3,7]输出:49 解释:图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表

2021-05-14 11:29:59 82

原创 每日一题-09-字母异位词分组

每日一题-09-字母异位词分组字母异位词分组给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。示例:输入: ["eat", "tea", "tan", "ate", "nat", "bat"]输出:[ ["ate","eat","tea"], ["nat","tan"], ["bat"]]说明:所有输入均为小写字母。不考虑答案输出的顺序。1.直接使用暴力方法进行遍历,并对每一个遍历得到的元素进行排序,然后创建一个数组用来存在排序后的对象

2021-05-14 11:18:01 123

原创 每日一题-08-二叉树中序遍历

每日一题-08-二叉树中序遍历二叉树的中序遍历给定一个二叉树的根节点 root ,返回它的 中序 遍历。示例 1:输入:root = [1,null,2,3]输出:[1,3,2]示例 2:输入:root = []输出:[]示例 3:输入:root = [1]输出:[1]示例 4:输入:root = [1,2]输出:[2,1]示例 5:输入:root = [1,null,2]输出:[1,2]提示:树中节点数目在范围 [0, 100] 内-100 &lt

2021-05-14 11:11:05 185

原创 每日一题-07-三数之和

每日一题-07-三数之和三数之和给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。注意:答案中不可以包含重复的三元组。示例 1:输入:nums = [-1,0,1,2,-1,-4]输出:[[-1,-1,2],[-1,0,1]]示例 2:输入:nums = []输出:[]示例 3:输入:nums = [0]输出:[]提示:0 <= nums.length

2021-05-12 11:43:21 71

原创 每日一题-06-买卖股票的最佳时机

每日一题-06 买卖股票的最佳时机给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。示例 1:输入:[7,1,5,3,6,4]输出:5解释:在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1

2021-05-12 10:15:26 85

仪用数字显示调节器 南邮

仪用仪表课程设计!!! 数电和模电相关的理论相互结合后设计!! 使用Multisim 14.0以上的版本打开!!!

2018-09-13

空空如也

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

TA关注的人

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