Leetcode
从零开始的数据猿
这个作者很懒,什么都没留下…
展开
-
LeetCode 108. 将有序数组转换为二叉搜索树
给你一个整数数组 nums ,其中元素已经按 升序 排列,请你将其转换为一棵 高度平衡 二叉搜索树。高度平衡 二叉树是一棵满足「每个节点的左右两个子树的高度差的绝对值不超过 1 」的二叉树。示例 1:输入:nums = [-10,-3,0,5,9]输出:[0,-3,9,-10,null,5]解释:[0,-10,5,null,-3,null,9] 也将被视为正确答案:示例 2:输入:nums = [1,3]输出:[3,1]解释:[1,null,3] 和 [3,1] 都是高度平衡二叉搜索树。提示:1原创 2022-06-18 16:27:43 · 172 阅读 · 0 评论 -
平分物品 笔试题练习小结
题目链接:https://www.nowcoder.com/test/question/908255677b6f4c18a9074c12f21acd59?pid=27972467&tid=56290657题目现在有n个物品,每一个物品都有一个价值,现在想将这些物品分给两个人,要求这两个人每一个人分到的物品的价值总和相同(个数可以不同,总价值相同即可),剩下的物品就需要扔掉,现在想知道最少需要扔多少价值的物品才能满足要求分给两个人。要求:时间复杂度,空间复杂度输入描述:第一行输入一个.原创 2022-05-10 16:33:48 · 269 阅读 · 0 评论 -
动态规划常见题小结
前言以下代码皆可由核心代码推出遍历顺序,如dp[i][j] = dp[i+1][j-1],那么遍历顺序如下 for (int i = s.length() - 1; i >= 0; i--) { for (int j = i; j < s.length(); j++) { //核心代码..... } }子串回文子串题目链接dp[i][j]: 表示区间范围[i,j] (注意是左闭右闭原创 2022-03-12 15:39:24 · 463 阅读 · 0 评论 -
LeetCode24 两两交换链表中的节点
题目解题思路画图模拟(上图是对代码随想录的图进行修改)代码/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val = val; } * ListNode(int val, ListNode next) { this.原创 2022-03-08 07:47:53 · 214 阅读 · 0 评论 -
LeetCode37 解数独
题目编写一个程序,通过填充空格来解决数独问题。数独的解法需 遵循如下规则:数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。(请参考示例图)数独部分空格内已填入了数字,空白格用 ‘.’ 表示。示例:输入:board = [[“5”,“3”,".",".",“7”,".",".",".","."],[“6”,".",".",“1”,“9”,“5”,".",".","."],[".",“9”,“8”,".","原创 2021-12-06 09:46:01 · 393 阅读 · 0 评论 -
复杂链表的复制
题目输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针random指向一个随机节点),请对此链表进行深拷贝,并返回拷贝后的头结点。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)。 下图是一个含有5个结点的复杂链表。图中实线箭头表示next指针,虚线箭头表示random指针。为简单起见,指向null的指针没有画出。示例:输入:{1,2,3,4,5,3,5,#,2,#}输出:{1,2,3,4,5,3,5,#,2,#}解析:我们将链表分为两原创 2021-10-16 15:33:02 · 82 阅读 · 0 评论 -
JZ76 删除链表中重复的结点
题目解题思路辅助空间分析多次遍历,第一次遍历把重复的结点值存入 set 容器,第二次遍历,当结点值存储在 set 容器中,就删除该结点代码import java.util.*;public class Solution { public ListNode deleteDuplication(ListNode pHead){ if(pHead == null){ return null; } // 先原创 2021-10-16 15:29:31 · 185 阅读 · 0 评论 -
LeetCode 413. 等差数列划分 446. 等差数列划分 II - 子序列
413. 等差数列划分如果一个数列 至少有三个元素 ,并且任意两个相邻元素之差相同,则称该数列为等差数列。例如,[1,3,5,7,9]、[7,7,7,7] 和 [3,-1,-5,-9] 都是等差数列。给你一个整数数组 nums ,返回数组 nums 中所有为等差数组的 子数组 个数。子数组 是数组中的一个连续序列。 示例 1:输入:nums = [1,2,3,4]输出:3解释:nums 中有三个子等差数组:[1, 2, 3]、[2, 3, 4] 和 [1,2,3,4] 自身。原创 2021-08-12 20:45:44 · 242 阅读 · 6 评论 -
LeetCode 461. 汉明距离
题目两个整数之间的 汉明距离 指的是这两个数字对应二进制位不同的位置的数目。给你两个整数 x 和 y,计算并返回它们之间的汉明距离。 示例 1:输入:x = 1, y = 4输出:2解释:1 (0 0 0 1)4 (0 1 0 0) ↑ ↑上面的箭头指出了对应二进制位不同的位置。示例 2:输入:x = 3, y = 1输出:1 提示:0 <= x, y <= 231 - 1解题思路位运算代码class Soluti原创 2021-06-20 00:06:40 · 97 阅读 · 0 评论 -
面试题 05.01. 插入
题目给定两个整型数字 N 与 M,以及表示比特位置的 i 与 j(i <= j,且从 0 位开始计算)。编写一种方法,使 M 对应的二进制数字插入 N 对应的二进制数字的第 i ~ j 位区域,不足之处用 0 补齐。具体插入过程如图所示。题目保证从 i 位到 j 位足以容纳 M, 例如: M = 10011,则 i~j 区域至少可容纳 5 位。 示例1: 输入:N = 1024(10000000000), M = 19(10011), i = 2, j = 6 输出:N =原创 2021-06-20 00:05:46 · 164 阅读 · 0 评论 -
LeetCode 第245场周赛
LCS 01. 下载插件小扣打算给自己的 VS code 安装使用插件,初始状态下带宽每分钟可以完成 1 个插件的下载。假定每分钟选择以下两种策略之一:使用当前带宽下载插件将带宽加倍(下载插件数量随之加倍)请返回小扣完成下载 n 个插件最少需要多少分钟。注意:实际的下载的插件数量可以超过 n 个示例 1:输入:n = 2输出:2解释:以下两个方案,都能实现 2 分钟内下载 2 个插件方案一:第一分钟带宽加倍,带宽可每分钟下载 2 个插件;第二分钟下载 2 个插件方案二:原创 2021-06-20 00:06:21 · 224 阅读 · 0 评论 -
LeetCode 693. 交替位二进制数
题目给定一个正整数,检查它的二进制表示是否总是 0、1 交替出现:换句话说,就是二进制表示中相邻两位的数字永不相同。 示例 1:输入:n = 5输出:true解释:5 的二进制表示是:101示例 2:输入:n = 7输出:false解释:7 的二进制表示是:111.示例 3:输入:n = 11输出:false解释:11 的二进制表示是:1011.示例 4:输入:n = 10输出:true解释:10 的二进制表示是:1010.示例 5:输入:n = 3输原创 2021-06-20 00:06:52 · 160 阅读 · 4 评论 -
LeetCode 762. 二进制表示中质数个计算置位
题目给定两个整数 L 和 R ,找到闭区间 [L, R] 范围内,计算置位位数为质数的整数个数。(注意,计算置位代表二进制表示中1的个数。例如 21 的二进制表示 10101 有 3 个计算置位。还有,1 不是质数。)示例 1:输入: L = 6, R = 10输出: 4解释:6 -> 110 (2 个计算置位,2 是质数)7 -> 111 (3 个计算置位,3 是质数)9 -> 1001 (2 个计算置位,2 是质数)10-> 1010 (2 个计算置位,原创 2021-06-19 12:21:34 · 153 阅读 · 0 评论 -
LeetCode 1290. 二进制链表转整数
题目给你一个单链表的引用结点 head。链表中每个结点的值不是 0 就是 1。已知此链表是一个整数数字的二进制表示形式。请你返回该链表所表示数字的 十进制值 。示例 1:输入:head = [1,0,1]输出:5解释:二进制数 (101) 转化为十进制数 (5)示例 2:输入:head = [0]输出:0示例 3:输入:head = [1]输出:1示例 4:输入:head = [1,0,0,1,0,0,1,1,1,0,0,0,0,0,0]输出:18880示例 5:输入:h原创 2021-06-19 12:19:24 · 124 阅读 · 0 评论 -
LeetCode 1342. 将数字变成 0 的操作次数
题目给你一个非负整数 num ,请你返回将它变成 0 所需要的步数。 如果当前数字是偶数,你需要把它除以 2 ;否则,减去 1 。 示例 1:输入:num = 14输出:6解释:步骤 1) 14 是偶数,除以 2 得到 7 。步骤 2) 7 是奇数,减 1 得到 6 。步骤 3) 6 是偶数,除以 2 得到 3 。步骤 4) 3 是奇数,减 1 得到 2 。步骤 5) 2 是偶数,除以 2 得到 1 。步骤 6) 1 是奇数,减 1 得到 0 。示例 2:输入:num =原创 2021-06-19 12:18:15 · 76 阅读 · 0 评论 -
LeetCode 1356. 根据数字二进制下 1 的数目排序
题目给你一个整数数组 arr 。请你将数组中的元素按照其二进制表示中数字 1 的数目升序排序。如果存在多个数字二进制中 1 的数目相同,则必须将它们按照数值大小升序排列。请你返回排序后的数组。 示例 1:输入:arr = [0,1,2,3,4,5,6,7,8]输出:[0,1,2,4,8,3,5,6,7]解释:[0] 是唯一一个有 0 个 1 的数。[1,2,4,8] 都有 1 个 1 。[3,5,6] 有 2 个 1 。[7] 有 3 个 1 。按照 1 的个数排序得到的结原创 2021-06-19 12:17:30 · 95 阅读 · 0 评论 -
LeetCode 1837. K 进制表示下的各位数字总和
题目给你一个整数 n(10 进制)和一个基数 k ,请你将 n 从 10 进制表示转换为 k 进制表示,计算并返回转换后各位数字的 总和 。转换后,各位数字应当视作是 10 进制数字,且它们的总和也应当按 10 进制表示返回。 示例 1:输入:n = 34, k = 6输出:9解释:34 (10 进制) 在 6 进制下表示为 54 。5 + 4 = 9 。示例 2:输入:n = 10, k = 10输出:1解释:n 本身就是 10 进制。 1 + 0 = 1 。 提示:原创 2021-06-19 12:16:14 · 339 阅读 · 0 评论 -
LeetCode 1720. 解码异或后的数组
题目未知 整数数组 arr 由 n 个非负整数组成。经编码后变为长度为 n - 1 的另一个整数数组 encoded ,其中 encoded[i] = arr[i] XOR arr[i + 1] 。例如,arr = [1,0,2,1] 经编码后得到 encoded = [1,2,3] 。给你编码后的数组 encoded 和原数组 arr 的第一个元素 first(arr[0])。请解码返回原数组 arr 。可以证明答案存在并且是唯一的。 示例 1:输入:encoded = [1,2原创 2021-06-19 12:15:21 · 150 阅读 · 0 评论 -
LeetCode 1486. 数组异或操作
题目给你两个整数,n 和 start 。数组 nums 定义为:nums[i] = start + 2*i(下标从 0 开始)且 n == nums.length 。请返回 nums 中所有元素按位异或(XOR)后得到的结果。 示例 1:输入:n = 5, start = 0输出:8解释:数组 nums 为 [0, 2, 4, 6, 8],其中 (0 ^ 2 ^ 4 ^ 6 ^ 8) = 8 。 "^" 为按位异或 XOR 运算符。示例 2:输入:n = 4, st原创 2021-06-19 12:13:25 · 163 阅读 · 0 评论 -
LeetCode 389. 找不同
题目给定两个字符串 s 和 t,它们只包含小写字母。字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。请找出在 t 中被添加的字母。 示例 1:输入:s = "abcd", t = "abcde"输出:"e"解释:'e' 是那个被添加的字母。示例 2:输入:s = "", t = "y"输出:"y"示例 3:输入:s = "a", t = "aa"输出:"a"示例 4:输入:s = "ae", t = "aea"输出:"a" 提示:0原创 2021-06-19 06:34:08 · 125 阅读 · 0 评论 -
LeetCode 136. 只出现一次的数字
题目给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1示例 2:输入: [4,1,2,1,2]输出: 4解题思路位运算代码class Solution { public int singleNumber(int[] nums) { int single = 0; for原创 2021-06-19 06:33:46 · 117 阅读 · 0 评论 -
LeetCode 401. 二进制手表
题目二进制手表顶部有 4 个 LED 代表 小时(0-11),底部的 6 个 LED 代表 分钟(0-59)。每个 LED 代表一个 0 或 1,最低位在右侧。例如,下面的二进制手表读取 "3:25" 。(图源:WikiMedia - Binary clock samui moon.jpg ,许可协议:Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) )给你一个整数 turnedOn ,表示当前亮着的 LED 的数量,返回二进制手表可以表示原创 2021-06-19 06:33:25 · 254 阅读 · 0 评论 -
LeetCode 342. 4的幂
题目给定一个整数,写一个函数来判断它是否是 4 的幂次方。如果是,返回 true ;否则,返回 false 。整数 n 是 4 的幂次方需满足:存在整数 x 使得 n == 4x 示例 1:输入:n = 16输出:true示例 2:输入:n = 5输出:false示例 3:输入:n = 1输出:true 提示:-231 <= n <= 231 - 1 进阶:你能不使用循环或者递归来完成本题吗?解题思路位运算代码class Solu原创 2021-06-18 11:23:15 · 68 阅读 · 0 评论 -
LeetCode 405. 数字转换为十六进制数
题目给定一个整数,编写一个算法将这个数转换为十六进制数。对于负整数,我们通常使用 补码运算 方法。注意:十六进制中所有字母(a-f)都必须是小写。十六进制字符串中不能包含多余的前导零。如果要转化的数为0,那么以单个字符'0'来表示;对于其他情况,十六进制字符串中的第一个字符将不会是0字符。 给定的数确保在32位有符号整数范围内。不能使用任何由库提供的将数字直接转换或格式化为十六进制的方法。示例 1:输入:26输出:"1a"示例 2:输入:-1输出:"fffffff原创 2021-06-18 11:22:16 · 163 阅读 · 0 评论 -
LeetCode 476. 数字的补数
题目给你一个 正 整数 num ,输出它的补数。补数是对该数的二进制表示取反。 示例 1:输入:num = 5输出:2解释:5 的二进制表示为 101(没有前导零位),其补数为 010。所以你需要输出 2 。示例 2:输入:num = 1输出:0解释:1 的二进制表示为 1(没有前导零位),其补数为 0。所以你需要输出 0 。 提示:给定的整数 num 保证在 32 位带符号整数的范围内。num >= 1你可以假定二进制数不包含前导零位。解题思路位运算原创 2021-06-18 11:21:13 · 161 阅读 · 0 评论 -
LeetCode 268. 丢失的数字
题目给定一个包含 [0, n] 中 n 个数的数组 nums ,找出 [0, n] 这个范围内没有出现在数组中的那个数。 进阶:你能否实现线性时间复杂度、仅使用额外常数空间的算法解决此问题? 示例 1:输入:nums = [3,0,1]输出:2解释:n = 3,因为有 3 个数字,所以所有的数字都在范围 [0,3] 内。2 是丢失的数字,因为它没有出现在 nums 中。示例 2:输入:nums = [0,1]输出:2解释:n = 2,因为有 2 个数字,所以所有的数字都原创 2021-06-18 08:32:51 · 106 阅读 · 0 评论 -
LeetCode 190. 颠倒二进制位
题目颠倒给定的 32 位无符号整数的二进制位。 提示:请注意,在某些语言(如 Java)中,没有无符号整数类型。在这种情况下,输入和输出都将被指定为有符号整数类型,并且不应影响您的实现,因为无论整数是有符号的还是无符号的,其内部的二进制表示形式都是相同的。在 Java 中,编译器使用二进制补码记法来表示有符号整数。因此,在上面的 示例 2 中,输入表示有符号整数 -3,输出表示有符号整数 -1073741825。 进阶:如果多次调用这个函数,你将如何优化你的算法? 示例 1:原创 2021-06-18 08:31:52 · 94 阅读 · 0 评论 -
LeetCode 169. 多数元素
题目给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。 示例 1:输入:[3,2,3]输出:3示例 2:输入:[2,2,1,1,1,2,2]输出:2 进阶:尝试设计时间复杂度为 O(n)、空间复杂度为 O(1) 的算法解决此问题。解题思路位运算代码class Solution { public int majorityElement(in原创 2021-06-18 08:18:00 · 76 阅读 · 0 评论 -
LeetCode 338. 比特位计数
题目给定一个非负整数 num。对于 0 ≤ i ≤ num 范围中的每个数字 i ,计算其二进制数中的 1 的数目并将它们作为数组返回。示例 1:输入: 2输出: [0,1,1]示例 2:输入: 5输出: [0,1,1,2,1,2]进阶:给出时间复杂度为O(n*sizeof(integer))的解答非常容易。但你可以在线性时间O(n)内用一趟扫描做到吗?要求算法的空间复杂度为O(n)。你能进一步完善解法吗?要求在C++或任何其他语言中不使用任何内置函数(如 C++ 中的 __b原创 2021-06-18 08:25:18 · 104 阅读 · 0 评论 -
LeetCode 191. 位1的个数
题目编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 '1' 的个数(也被称为汉明重量)。 提示:请注意,在某些语言(如 Java)中,没有无符号整数类型。在这种情况下,输入和输出都将被指定为有符号整数类型,并且不应影响您的实现,因为无论整数是有符号的还是无符号的,其内部的二进制表示形式都是相同的。在 Java 中,编译器使用二进制补码记法来表示有符号整数。因此,在上面的 示例 3 中,输入表示有符号整数 -3。 示例 1:输入:0000000原创 2021-06-18 08:35:29 · 121 阅读 · 0 评论 -
LeetCode 231. 2 的幂
题目给你一个整数 n,请你判断该整数是否是 2 的幂次方。如果是,返回 true ;否则,返回 false 。如果存在一个整数 x 使得 n == 2x ,则认为 n 是 2 的幂次方。 示例 1:输入:n = 1输出:true解释:20 = 1示例 2:输入:n = 16输出:true解释:24 = 16示例 3:输入:n = 3输出:false示例 4:输入:n = 4输出:true示例 5:输入:n = 5输出:false 提示:-23原创 2021-06-18 08:34:05 · 145 阅读 · 0 评论 -
LeetCode 52. N皇后 II
题目n 皇后问题 研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。给你一个整数 n ,返回 n 皇后问题 不同的解决方案的数量。解题思路与N皇后思路一样,删一点代码即可代码class Solution { public Set<Integer> col,pie,na; public int res; int n; boolean[][] board; public int totalNQueens(int原创 2021-06-11 07:59:53 · 194 阅读 · 2 评论 -
LeetCode 51. N 皇后
题目n 皇后问题 研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。给你一个整数 n ,返回所有不同的 n 皇后问题 的解决方案。每一种解法包含一个不同的 n 皇后问题 的棋子放置方案,该方案中 ‘Q’ 和 ‘.’ 分别代表了皇后和空位。示例 1:输入:n = 4输出:[[".Q…","…Q",“Q…”,"…Q."],["…Q.",“Q…”,"…Q",".Q…"]]解释:如上图所示,4 皇后问题存在两个不同的解法。示例 2:输入:n = 1输出:[[“原创 2021-06-10 09:35:24 · 114 阅读 · 0 评论 -
LeetCode 208. 实现 Trie (前缀树)
题目Trie(发音类似 "try")或者说 前缀树 是一种树形数据结构,用于高效地存储和检索字符串数据集中的键。这一数据结构有相当多的应用情景,例如自动补完和拼写检查。请你实现 Trie 类:Trie() 初始化前缀树对象。void insert(String word) 向前缀树中插入字符串 word 。boolean search(String word) 如果字符串 word 在前缀树中,返回 true(即,在检索之前已经插入);否则,返回 false 。boolean startsW原创 2021-06-09 07:13:17 · 177 阅读 · 0 评论 -
剑指 Offer 26. 树的子结构
题目输入两棵二叉树A和B,判断B是不是A的子结构。(约定空树不是任意一个树的子结构)B是A的子结构, 即 A中有出现和B相同的结构和节点值。例如:给定的树 A: 3 / \ 4 5 / \ 1 2给定的树 B: 4 / 1返回 true,因为 B 与 A 的一个子树拥有相同的结构和节点值。示例 1:输入:A = [1,2,3], B = [3,1]输出:false示例 2:输入:A = [3,4,5,1,2], B =原创 2021-06-08 07:06:39 · 70 阅读 · 0 评论 -
LeetCode 1609. 奇偶树
题目如果一棵二叉树满足下述几个条件,则可以称为 奇偶树 :二叉树根节点所在层下标为 0 ,根的子节点所在层下标为 1 ,根的孙节点所在层下标为 2 ,依此类推。偶数下标 层上的所有节点的值都是 奇 整数,从左到右按顺序 严格递增奇数下标 层上的所有节点的值都是 偶 整数,从左到右按顺序 严格递减给你二叉树的根节点,如果二叉树为 奇偶树 ,则返回 true ,否则返回 false 。示例 1:输入:root = [1,10,4,3,null,7,9,12,8,6,null,null,2]输出原创 2021-06-08 07:04:59 · 226 阅读 · 0 评论 -
LeetCode 501. 二叉搜索树中的众数
题目给定一个有相同值的二叉搜索树(BST),找出 BST 中的所有众数(出现频率最高的元素)。假定 BST 有如下定义:结点左子树中所含结点的值小于等于当前结点的值结点右子树中所含结点的值大于等于当前结点的值左子树和右子树都是二叉搜索树例如:给定 BST [1,null,2,2], 1 \ 2 / 2返回[2].提示:如果众数超过1个,不需考虑输出顺序进阶:你可以不使用额外的空间吗?(假设由递归产生的隐式调用栈的开销不被计算在内)解题原创 2021-06-07 17:39:26 · 74 阅读 · 0 评论 -
LeetCode 530. 二叉搜索树的最小绝对差
题目给你一棵所有节点为非负值的二叉搜索树,请你计算树中任意两节点的差的绝对值的最小值。 示例:输入: 1 \ 3 / 2输出:1解释:最小绝对差为 1,其中 2 和 1 的差的绝对值为 1(或者 2 和 3)。代码class Solution { int pre; int ans; public int getMinimumDifference(TreeNode root) { ans = In原创 2021-06-07 07:00:31 · 74 阅读 · 0 评论 -
LeetCode 654. 最大二叉树
题目给定一个不含重复元素的整数数组 nums 。一个以此数组直接递归构建的 最大二叉树 定义如下:二叉树的根是数组 nums 中的最大元素。左子树是通过数组中 最大值左边部分 递归构造出的最大二叉树。右子树是通过数组中 最大值右边部分 递归构造出的最大二叉树。返回有给定数组 nums 构建的 最大二叉树 。示例 1:输入:nums = [3,2,1,6,0,5]输出:[6,3,5,null,2,0,null,null,1]解释:递归调用如下所示:[3,2,1,6,0,5] 中的最大值原创 2021-06-05 09:25:09 · 155 阅读 · 0 评论 -
LeetCode 437. 路径总和 III
题目给定一个二叉树,它的每个结点都存放着一个整数值。找出路径和等于给定数值的路径总数。路径不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)。二叉树不超过1000个节点,且节点数值范围是 [-1000000,1000000] 的整数。示例:root = [10,5,-3,3,2,null,11,3,-2,null,1], sum = 8 10 / \ 5 -3 / \ \ 3 2 1原创 2021-06-04 07:12:16 · 280 阅读 · 0 评论