自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(53)
  • 收藏
  • 关注

原创 个人项目代码整合

资源整合:c51游戏机链接:https://pan.baidu.com/s/16FNKf_18UeXL3fePeii0KQ提取码:pd1b代码和工程文件都在这里了,若有些注释有乱码的话可以转gbk码看下贪食蛇游戏项目代码链接链接:https://pan.baidu.com/s/1_P8DakCE3yQ4uCIhdhvCTg提取码:qpgmLinux网络聊天室项目链接:https://pan.baidu.com/s/1JaQpN5ir-V8sQAaAcjuj3Q提取码:2222单片机黑人

2022-03-16 21:12:53 1213

原创 数据的存储和排列

数据的存储和排列

2023-03-07 22:51:23 199

原创 Trie 字典树

Trie树,即字典树,又称单词查找树或键树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计和排序大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:最大限度地减少无谓的字符串比较,查询效率比哈希表高。Trie的核心思想是空间换时间。利用字符串的公共前缀来降低查询时间的开销以达到提高效率的目的。

2023-02-26 22:14:05 176

原创 Leetcode 373.查找和最小的K对数字

题目 Leetcode 373.查找和最小的K对数字题目链接: Leetcode 373.查找和最小的K对数字给定两个以 升序排列 的整数数组 nums1 和 nums2 , 以及一个整数 k 。定义一对值 (u,v),其中第一个元素来自 nums1,第二个元素来自 nums2 。请找到和最小的 k 个数对 (u1,v1), (u2,v2) … (uk,vk) 。样例示例1:输入: nums1 = [1,7,11], nums2 = [2,4,6], k = 3输出: [1,2],[

2022-01-15 10:36:45 506

原创 图像分割__阈值分割

阈值分割为得到图像中的物体信息, 必须进行图像分割, 即提取图像中与感兴趣物体相对应的区域, 而其中最简单的分割算法是图像的阈值分割。1. 全局阈值使用过程中的五种阈值类型如上图所示这种设定全局阈值的来进行图像分割的方法还是比较好理解的, 即设定一个阈值, 跟图像的每一个像素点的灰度值比较, 然后根据上面的五种类型的对应规则改变图中像素点的灰度值来达到图像分割的目的.1.1 cv2.threshold()函数ret, img = cv2.threshold (src, thresh,

2021-11-05 17:35:31 2520

原创 Acwing_算法基础

算法基础课 第一讲基础算法总结仅贡本人复习用, 如有不足请大佬指出快速排序练习链接: 快速排序重点理解 快排的实现原理— 用到的是分治的思想。(1) 确定分界点: 一般分界点有三种选择 q[l], q[(l + r) / 2], q[r] ; 选取其中一个的值假设为x(2) 调整区间: 将整个序列调整为小于等于x都在x左边, 大于等于x都在x右边(3) 递归处理左右两段区间, 使得左右区间都有序本身排序是不稳定的, STL中有对应的sort函数,故在平常刷题的过程不用特地自己写出快排,但

2021-10-01 17:02:56 314

原创 KMP算法之我见

KMP算法朴素BF算法首先KMP模式匹配算法是针对朴素匹配算法的不足和低效提出的,要想真正理解KMP算法,我认为应该先理解朴素算法为什么低效// 朴素的BF算法的实现 #include<iostream>using namespace std;constexpr int N = 1e+6 + 10;char p[N], s[N]; auto main() -> int{ ios::sync_with_stdio(false); int n; ci

2021-10-01 15:37:08 144

原创 数位DP问题

数位DP问题数位DP问题一般都是问在 小于等于 n 的数里面, 有多少个数是满足条件的, 当然问题也可以转换为问一个区间里面[a, b] 是满足某种条件的, 当然对于这种区间的问题, 我们可以将其转化为前缀和问题, 例如转化为求 0 ~ b里满足的个数 - 0 ~ a - 1 里面满足条件的个数, 一般做法分两步:(1) 预处理 (一般情况)(2) 按位进行处理例题题目链接: 600. 不含连续1的非负整数题目描述:给定一个正整数 n,找出小于或等于 n 的非负整数中,其二进制表示不包含 连续

2021-09-11 22:33:12 301

原创 leetcode每日一题_用Rand7() 实现 Rand10()

470.用Rand7() 实现 Rand10()已有方法 rand7 可生成 1 到 7 范围内的均匀随机整数,试写一个方法 rand10 生成 1 到 10 范围内的均匀随机整数。不要使用系统的 Math.random() 方法。题目链接: leetcode 470.用Rand7()来实现Rand10()样例示例1:输入: 1输出: [7] 示例2:输入: 2输出: [8,4]示例3:输入: 3输出: [8,1,10]提示:rand7 已定义。传入参数:

2021-09-05 16:27:51 210

原创 Leetcode 1104.二叉树寻路

Leetcode 1104.二叉树寻路题目链接: leetcode 1104.二叉树寻路在一棵无限的二叉树上,每个节点都有两个子节点,树中的节点 逐行 依次按 “之” 字形进行标记。如下图所示,在奇数行(即,第一行、第三行、第五行……)中,按从左到右的顺序进行标记;而偶数行(即,第二行、第四行、第六行……)中,按从右到左的顺序进行标记。给你树上某一个节点的标号 label,请你返回从根节点到该标号为 label 节点的路径,该路径是由途经的节点标号所组成的。样例示例1:输入:label =

2021-07-30 18:09:47 140

原创 Python自用手册

Python自用手册转义字符转义字符\r 回车 直接退格到首行\n 换行\t 一个制表符 长度为 8前面凑不齐8格字符,自动长度为8例如 :print("12345\ta")12345 a>>> print("12\ta")12 a>>> print("1234567\ta")1234567 a>>> print("12345678\ta")12345678

2021-07-29 19:01:36 474

原创 VScode C/C++环境配置

VScode C/C++环境配置1、环境准备C/C++的程序源代码, 经过预处理 --> 编译 --> 汇编 --> 链接 最后得到我们的可执行文件, 这里我们环境需要一个编译器, 这里用的是 GCC, 下载地址为: MinGW-w64下载地址 , 下载解压之后将bin的路径加入环境变量中, 这里的操作可以查看其他文章.验证是否安装成功, win + r 输入 cmd, 输入 gcc -v, 查看信息即可。2、安装 C/C++ 插件下载这个即可3、vscode的配置环境​

2021-07-27 16:26:29 625

原创 Leetcode每日一题_滑动窗口题目

Leetcode每日一题_1838.最高频元素的频数题目链接: Leetcode 1838. 最高频元素的频数题目元素的 频数 是该元素在一个数组中出现的次数。给你一个整数数组 nums 和一个整数 k 。在一步操作中,你可以选择 nums 的一个下标,并将该下标对应元素的值增加 1 。执行最多 k 次操作后,返回数组中最高频元素的 最大可能频数 。样例示例1:输入:nums = [1,2,4], k = 5输出:3解释:对第一个元素执行 3 次递增操作,对第二个元素执 2 次递增操作,

2021-07-20 23:35:54 368 2

原创 手动消除if-else分支结构

程序的分支消除参考: 手动分支消除为什么要进行分支消除?消除如 if … else … 这样的结构, 其中一点原因就是分支预测(Branch Prediction),这里直接把概念粘过来了当包含流水线技术的处理器处理分支指令时就会遇到一个问题,根据判定条件的真/假的不同,有可能会产生跳转,而这会打断流水线中指令的处理,因为处理器无法确定该指令的下一条指令,直到分支执行完毕。流水线越长,处理器等待的时间便越长,因为它必须等待分支指令处理完毕,才能确定下一条进入流水线的指令。其又分为静态分支预测和动

2021-07-12 21:06:43 369

原创 位运算__快速将某位置为0/1

位运算__快速将某位置为0/1存在一个整数 num, 现在需要将其二进制表示的 第 k 位 置为 0 / 1.第 x 位, x由0开始算, 例如 5 的 二进制位表示为 0101, 其从左到右, 第0位, 第1位, 第二位依次是 1, 0, 1(1) 将 num 的二进制表示的第k位置为 0num = num & (~(1 << k)); (2) 将 num 的二进制表示的第k位置为1num = num | (1 << i); ...

2021-06-21 13:11:02 759

原创 Leetcode 1449.数位成本和目标值的最大数字

Leetcode 数位成本和目标值的最大数字题目链接: leetcode 1449.数位成本和为目标值的最大数字题目给你一个整数数组 cost 和一个整数 target 。请你返回满足如下规则可以得到的最大整数:给当前结果添加一个数位(i + 1)的成本为 cost[i] (cost 数组下标从 0 开始)。总成本必须恰好等于 target 。添加的数位中没有数字 0 。由于答案可能会很大,请你以字符串形式返回。如果按照上述要求无法得到任何整数,请你返回 “0” 。样例示

2021-06-16 22:52:27 196 1

原创 01背包问题分析及具体题目分析

01背包问题最简单经典的背包问题, 来看一下这个这个问题的一个具体背景:题目描述:有 N 件物品和一个容量是 V 的背包。每件物品只能使用一次。第iii件物品的体积是$ v_i$,价值是 wiw_iwi​。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。思路分析 考虑用几维来表示解, 从第一维考虑, 够吗? 好像不是很够, 那用二维呢, 那f[i][j]好像能表示我们要解决的问题了, 即我们可以表示为从1 ~ i个物品中选, 且所有物品体积之和

2021-06-11 13:24:32 1098

原创 Leetcode 跳跃游戏相关问题

跳跃游戏相关问题leetcode 55. 跳跃游戏leetcode 45. 跳跃游戏II55. 跳跃游戏题目链接: leetcode 55.跳跃游戏给定一个非负整数数组 nums ,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标。样例示例1:输入:nums = [2,3,1,1,4]输出:true解释:可以先跳 1 步,从下标 0 到达下标 1, 然后再从下标 1 跳 3 步到达最后一个下标。 示

2021-06-10 11:11:00 227 1

原创 Leetcode 48.旋转图像

Leetcode 48.旋转图像题目链接: Leetcode 48.旋转图像题目给定一个 n × n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。样例示例1:输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]输出:[[7,4,1],[8,5,2],[9,6,3]]示例2:输入:matrix = [[5,1,9,11],[2,4,8,10]

2021-06-07 18:41:53 153

原创 快速幂思路分析和代码实现

快速幂快速幂 就是快速算底数的n次幂。其时间复杂度为 O(logN)O(logN)O(logN)对于普通的计算 x的n次方, xnx^nxn , 我们一般的计算方法就是将x相乘n次得到最后的结果, 这样的时间复杂度为 O(N)O(N)O(N), 但是快速幂可以在时间复杂度为O(logN)O(logN)O(logN) 计算出结果, 下面看其原理 :来举一个例子, 例如我们计算 373^737 的结果, 我们可以先预处理一些数据:预处理数据: 3203^{2^0}320 = 3, 3213^

2021-06-07 15:19:52 152

原创 Leetcode 组合总和 与 排列组合相关问题

Leetcode 组合总和 与 全排列相关问题组合总和题目链接: Leetcode 39.组合总和题目描述给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的数字可以无限制重复被选取。说明:所有数字(包括 target)都是正整数。解集不能包含重复的组合。样例示例1:输入:candidates = [2,3,6,7], target = 7,所求解集为:[

2021-06-06 23:46:27 295

原创 Acwing 周赛 3626.三元一次方程

Acwing 3626. 三元一次方程题目链接: Acwing 3626. 三元一次方程题目描述给定一个整数 n,请你求出三元一次方程3x+5y+7z=n3x+5y+7z=n3x+5y+7z=n 的一组非负整数解。要求:x ≥ 0,y ≥ 0,z ≥ 0如果解不唯一,则输出 x,y,zx, y, zx,y,z 字典序最小的解​。输入格式第一行包含一个整数 T,表示共有 T 组测试数据。每组数据占一行,包含一个整数 n。输出格式每组数据输出一行结果,如果无解则输出 −1,否则输出 x

2021-06-06 14:54:03 255 2

原创 DP每日一题——CF1133E_整数分组

CF1133E_整数分组题目链接: ACwing 3583. 整数分组题目描述给定 n 个整数 a1,a2,…,ana_1,a_2,…,a_na1​,a2​,…,an​。现在,请你从中挑选一些数,并将选出的数进行分组。要求:选出的数最多划分为 kk 组(至少 11 组)。同一组内,任意两数之差的绝对值不超过 5。所选出的数尽可能多。请问,最多可以选出多少个数进行分组?输入格式第一行包含两个整数 n 和 k。第二行包含 n 个整数 a1,a2,…,ana_1,a_2,…,a_na1

2021-05-31 23:28:12 273

原创 快速判断一个数是否是N的幂次方

快速判断一个数是否是N的幂次方这两天的每日一题全是跟这个有关系的, 故这里简单总结下, 应该说这是个技巧, 并不涉及很复杂的算法, 就是简单的位运算, 以及找出N的幂次方所具有的特征, 最后做到在O(1)O(1)O(1)的时间内判断出来.题目链接:Leetcode 231. 2的幂Leetcode 342. 4的幂Leetcode 326. 3的幂2的幂题目描述给你一个整数 n,请你判断该整数是否是 2 的幂次方。如果是,返回 true ;否则,返回 false 。如果存在一个整数 x 使

2021-05-31 11:42:16 2518

原创 Leetcode 1074. 元素和为目标值的子矩阵数量

1074 Leetcode 元素和为目标值的子矩阵数量题目链接: 1074. 元素和为目标值的子矩阵数量题目描述给出矩阵 matrixmatrixmatrix 和目标值 targettargettarget,返回元素总和等于目标值的非空子矩阵的数量。子矩阵 x1, y1, x2, y2 是满足 x1 ≤ x ≤ x2 且 y1 ≤ y ≤ y2 的所有单元 matrix[x][y]matrix[x][y]matrix[x][y] 的集合。如果 (x1, y1, x2, y2) 和 (x1’, y1

2021-05-31 00:48:12 247

原创 Leetcode 560.和为k的子数组

560. Leetcode 和为k的子数组题目链接: 560. 和为K的子数组题目描述给定一个整数数组和一个整数 **k,**你需要找到该数组中和为 k 的连续的子数组的个数。样例示例1: 输入:nums = [1,1,1], k = 2输出: 2 , [1,1] 与 [1,1] 为两种不同的情况。说明:数组的长度为 [1, 20,000]。数组中元素的范围是 [-1000, 1000] ,且整数 k 的范围是 [-1e7, 1e7]。ws算法1 (前缀和 + 暴力枚举)思

2021-05-30 21:50:23 101

原创 CF585_乘积数量

题目链接: CF585. 乘积数量题目描述给定一个长度为 n 且不包含 0 的整数序列 a1,a2,…,ana_1,a_2,…,a_na1​,a2​,…,an​。请你计算以下两值:使得 al×al+1×…×ara_l×a_{l+1}×…×a_ral​×al+1​×…×ar​ 为负的索引对 (l,r)且(l≤r)的数量。使得 al×al+1×…×ara_l×a_{l+1}×…×a_ral​×al+1​×…×ar​ 为正的索引对 (l,r)且(l≤r)的数量。输入格式第一行一个整数 n。第二

2021-05-26 22:58:10 117

原创 CF题目_完美矩阵

CF_完美矩阵题目链接 : Acwing. 3565完美矩阵题目描述如果一个矩阵能够满足所有的行和列都是回文序列,则称这个矩阵为一个完美矩阵。一个整数序列a1,a2,…,aka_1,a_2,…,a_ka1​,a2​,…,ak​,如果满足对于任何整数 i(1≤i≤k),等式 ai=ak−i+1a_i=a_{k−i+1}ai​=ak−i+1​ 均成立,则这个序列是一个回文序列。给定一个 n×mn×mn×m 的矩阵 a,每次操作可以将矩阵中的某个元素加一或减一,请问最少经过多少次操作后,可以将矩阵 a

2021-05-25 23:59:20 633 1

原创 DP-Leetcode 奇怪的打印机

题目链接: Leetcode 664. 奇怪的打印机题目: 奇怪的打印机题目描述有台奇怪的打印机有以下两个特殊要求:打印机每次只能打印由 同一个字符 组成的序列。每次可以在任意起始和结束位置打印新字符,并且会覆盖掉原来已有的字符。给你一个字符串 s ,你的任务是计算这个打印机打印它需要的最少打印次数。样例示例1 : 输入:s = "aaabbb"输出:2解释:首先打印 "aaa" 然后打印 "bbb"。示例2 : 输入:s = "aba"输出:2解释:首先打印 "aaa"

2021-05-24 23:41:34 118

原创 数据结构-堆

堆 (Heap)1. 定义 : 堆(Heap)是计算机科学中一类特殊的数据结构的统称。堆通常是一个可以被看做一棵完全二叉树的数组对象。 故通常我们用完全二叉树来维护一个一维数组2. 分类 : 按照堆的特点可以把堆分为大顶堆和小顶堆----------大顶堆:每个结点的值都大于或等于其左右孩子结点的值----------小顶堆:每个结点的值都小于或等于其左右孩子结点的值3. 完全二叉树维护的一维数组的特点再开始具体讲解堆之前,我们先来了解一下完全二叉树的特点,及其用它来维护的一维数据有什么特点,

2021-05-20 13:24:12 302

原创 实现C++STL中全排列函数next_permutation

next_permutation函数的使用对于next_permutation函数,其函数原型为:#include <algorithm>bool next_permutation(iterator start,iterator end); next_permutation函数将按字母表顺序生成给定序列的下一个较大的序列,若此时序列为降序, 则返回一个最小的序列。直接看使用效果#include<iostream>#include<string>#incl

2021-05-20 00:12:16 297

原创 二进制枚举_阶乘的和

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

2021-05-17 10:16:19 271 3

原创 DP题目 - LeetCode 1269. 停在原地的方案数

题目链接 : 1269. 停在原地的方案数题目描述有一个长度为 arrLen 的数组,开始有一个指针在索引 0 处。每一步操作中,你可以将指针向左或向右移动 1 步,或者停在原地(指针不能被移动到数组范围外)。给你两个整数 steps 和 arrLen ,请你计算并返回:在恰好执行 steps 次操作以后,指针仍然指向索引 0 处的方案数。由于答案可能会很大,请返回方案数 模 109+710^9 + 7109+7 后的结果。样例示例1 输入:steps = 3, arrLen = 2输出

2021-05-13 23:07:42 100 1

原创 位运算--异或的应用及相关题目分析

异或运算的基本性质:相同数值异或,结果为 0任意数值与 0 进行异或,结果为数值本身异或本身满足交换律应用1: 找出只出现一次的1个数字先来一个简单的例子, 例如在一个数组中除了一个数字出现了一次, 数组中的其他数字都出现了两次,这里我们可以直接想到用哈希表的做法,这样的空间复杂度为 O(n)O(n)O(n) , 思考常量空间的做法, 这时就可以用到异或运算了, 异或运算中两个相同的数进行异或结果为0, 故我们的思路直接将整个数组异或一遍最后的结果即为那个只出现一次的那个数字, 这里进行扩展

2021-05-12 09:52:21 995 2

原创 图论 ---- 最小生成树相关算法

最小生成树算法Prim 算法求最小生成树的问题与求最短路问题的思路和代码实现都非常相似, 最小生成树中,即在一个图中,存在n个节点时, 找出其中的n - 1条边,使这n个点连通,且这n - 1条边的和最小,这样一个方案就是求一个图的最小生成树。Prim算法的思路: 每次将距离最小生成树集合距离的点加入最小生成树的集合中,然后用其去更新未加入的其他点到最小生成树集合中的距离,每一次加入一个点即完成一个局部的最优解,当以此加入了所有的节点,此时即为最小生成树.练习链接: Prim算法求最小生成树代

2021-05-08 17:18:44 241

原创 图论--最短路问题总结

图论–最短路问题其中求最短路常用的算法有上面几种, 根据题目给出的相关限制条件来选选择对应的算法,例如Dijkstra算法是不能处理负边权的情况,朴素版本Dijkstra和堆优化版本的Dijkstra,并不是朴素版就比优化版差,当图为稠密图时偏向于使用朴素版本的,因为当 m > n2 时,此时堆优化版本相比朴素版本时间复杂度高。计算存在负边权时的两种算法,spfa是对bellman—ford算法的改进,但bellman-ford代码实现比较简单。对于多源汇合最短路,这里只有一个Floyd算法,其算

2021-05-08 16:35:58 782

原创 动态规划——力扣10. 正则表达式匹配

题目链接 : Lc 10. 正则表达式匹配题目给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 ‘.’ 和 ‘*’ 的正则表达式匹配。‘.’ 匹配任意单个字符‘*’ 匹配零个或多个前面的那一个元素所谓匹配,是要涵盖 整个 字符串 s的,而不是部分字符串。示例 1:输入:s = "aa" p = "a"输出:false解释:"a" 无法匹配 "aa" 整个字符串。示例 2:输入:s = "aa" p = "a*"输出:true解释:因为 '*' 代表可以匹配零个或多

2021-05-07 23:12:30 142

原创 计算机考研_顺序表相关题目

题目来自摘自《22王道考研的数据结构》, 仅用作本人复习参考用题目1从顺序表中删除具有最小值的元素(假设唯一), 并由函数返回被删元素的值.空出的位置由最后一个元素填补, 若顺序表为空,则显示出错信息并退出运行.bool Del_Min(SqList &L, ElemType &value){ if(!L.length) { printf("error msg"); return false; } int po

2021-04-24 15:26:38 423

原创 LeetCode排序类Sort相关题目

Sort相关题目LC 148. 排序链表题目链接: 148. 排序链表给你链表的头结点 head ,请将其按 升序 排列并返回 排序后的链表 。链表排序相关算法(1) 插入排序:时间复杂度 O(n2n^2n2), 空间复杂度 O(1);(2) 归并排序(自顶向下) 时间复杂度 O(nlognnlognnlogn), 空间复杂度 O(lognlognlogn);(3) 归并排序(自底向上) 时间复杂度 O(nlognnlognnlogn), 空间复杂度 O(111);(4) 利用辅助

2021-04-23 11:20:52 169

原创 LC每日抑题_87. 扰乱字符串

题目链接:87. 扰乱字符串题目描述使用下面描述的算法可以扰乱字符串 s 得到字符串 t :如果字符串的长度为 1 ,算法停止如果字符串的长度 > 1 ,执行下述步骤:(1) 在一个随机下标处将字符串分割成两个非空的子字符串。即,如果已知字符串 s ,则可以将其分成两个子字符串 x 和 y ,且满足 s = x + y 。(2) 随机 决定是要「交换两个子字符串」还是要「保持这两个子字符串的顺序不变」。即,在执行这一步骤之后,s 可能是 s = x + y 或者 s = y + x 。

2021-04-22 00:00:15 115

空空如也

空空如也

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

TA关注的人

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