
LeetCode刷题笔记
文章平均质量分 77
记录我的LeetCode刷题过程。题解部分搬运自我的LeetCode:https://leetcode-cn.com/u/zaker1/
zaker123
永远年轻,永远热泪盈眶!
展开
-
[LeetCode]1025. 除数博弈
题目爱丽丝和鲍勃一起玩游戏,他们轮流行动。爱丽丝先手开局。最初,黑板上有一个数字 N 。在每个玩家的回合,玩家需要执行以下操作:选出任一 x,满足 0 < x < N 且 N % x == 0 。用 N - x 替换黑板上的数字 N 。如果玩家无法执行这些操作,就会输掉游戏。只有在爱丽丝在游戏中取得胜利时才返回 True,否则返回 false。假设两个玩家都以最佳状态参与游戏。示例 1:输入:2输出:true解释:爱丽丝选择 1,鲍勃无法进行操作。示例 2:输入:3输原创 2020-07-25 01:59:35 · 385 阅读 · 0 评论 -
[LeetCode]95. 不同的二叉搜索树 II
题目给定一个整数 n,生成所有由 1 … n 为节点所组成的 二叉搜索树 。示例:输入:3输出:[ [1,null,3,2], [3,2,null,1], [3,1,null,null,2], [2,1,3], [1,null,2,null,3]]解释:以上的输出对应以下 5 种不同结构的二叉搜索树: 1 3 3 2 1 \ / / / \ \ 3 2原创 2020-07-25 01:56:53 · 359 阅读 · 0 评论 -
[LeetCode]312. 戳气球
题目有 n 个气球,编号为0 到 n-1,每个气球上都标有一个数字,这些数字存在数组 nums 中。现在要求你戳破所有的气球。如果你戳破气球 i ,就可以获得 nums[left] * nums[i] * nums[right] 个硬币。 这里的 left 和 right 代表和 i 相邻的两个气球的序号。注意当你戳破了气球 i 后,气球 left 和气球 right 就变成了相邻的气球。求所能获得硬币的最大数量。说明:你可以假设 nums[-1] = nums[n] = 1,但注意它们不是真实原创 2020-07-25 01:47:17 · 123 阅读 · 0 评论 -
[LeetCode]97. 交错字符串
题目给定三个字符串 s1, s2, s3, 验证 s3 是否是由 s1 和 s2 交错组成的。示例 1:输入:s1 = "aabcc", s2 = "dbbca", s3 = "aadbbcbcac"输出:true示例 2:输入:s1 = "aabcc", s2 = "dbbca", s3 = "aadbbbaccc"输出:false解题思路记 |s1| = m,|s2| = n,|s3| = t。1)如果 m+n!=t,显然 s3 必不可能由 s1和 s2 交错组成。2)在 m原创 2020-07-23 01:48:45 · 137 阅读 · 0 评论 -
[LeetCode]785. 判断二分图
题目给定一个无向图graph,当这个图为二分图时返回true。如果我们能将一个图的节点集合分割成两个独立的子集A和B,并使图中的每一条边的两个节点一个来自A集合,一个来自B集合,我们就将这个图称为二分图。graph将会以邻接表方式给出,graph[i]表示图中与节点i相连的所有节点。每个节点都是一个在0到graph.length-1之间的整数。这图中没有自环和平行边: graph[i] 中不存在i,并且graph[i]中没有重复的值。示例 1:输入: [[1,3], [0,2], [1,3], [原创 2020-07-23 01:46:33 · 116 阅读 · 0 评论 -
[LeetCode]96. 不同的二叉搜索树
题目给定一个整数 n,求以 1 … n 为节点组成的二叉搜索树有多少种?示例:输入: 3输出: 5解释:给定 n = 3, 一共有 5 种不同结构的二叉搜索树: 1 3 3 2 1 \ / / / \ \ 3 2 1 1 3 2 / / \ \ 2 1 2原创 2020-07-23 01:37:59 · 110 阅读 · 0 评论 -
[LeetCode]239. 滑动窗口最大值
题目给定一个数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。返回滑动窗口中的最大值。进阶:你能在线性时间复杂度内解决此题吗?示例:输入: nums = [1,3,-1,-3,5,3,6,7], 和 k = 3输出: [3,3,5,5,6,7] 解释: 滑动窗口的位置 最大值--------------- -----[1 3原创 2020-07-14 01:42:11 · 133 阅读 · 0 评论 -
[LeetCode]350. 两个数组的交集 II
题目给定两个数组,编写一个函数来计算它们的交集。示例 1:输入:nums1 = [1,2,2,1], nums2 = [2,2]输出:[2,2]示例 2:输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出:[4,9]说明:输出结果中每个元素出现的次数,应与元素在两个数组中出现次数的最小值一致。我们可以不考虑输出结果的顺序。进阶:如果给定的数组已经排好序呢?你将如何优化你的算法?如果 nums1 的大小比 nums2 小很多,哪种方法更优?原创 2020-07-14 01:35:45 · 192 阅读 · 0 评论 -
[LeetCode]309. 最佳买卖股票时机含冷冻期
题目给定一个整数数组,其中第 i 个元素代表了第 i 天的股票价格 。设计一个算法计算出最大利润。在满足以下约束条件下,你可以尽可能地完成更多的交易(多次买卖一支股票):你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。卖出股票后,你无法在第二天买入股票 (即冷冻期为 1 天)。示例:输入: [1,2,3,0,2]输出: 3 解释: 对应的交易状态为: [买入, 卖出, 冷冻期, 买入, 卖出]解题思路详细思路见注释代码class Solution { p原创 2020-07-14 01:21:22 · 106 阅读 · 0 评论 -
[LeetCode]34. 在排序数组中查找元素的第一个和最后一个位置
题目给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。你的算法时间复杂度必须是 O(log n) 级别。如果数组中不存在目标值,返回 [-1, -1]。示例 1:输入: nums = [5,7,7,8,8,10], target = 8输出: [3,4]示例 2:输入: nums = [5,7,7,8,8,10], target = 6输出: [-1,-1]解题思路详细思路请参考 (面试题53 - I)在排序数组中查找原创 2020-07-14 01:09:41 · 127 阅读 · 0 评论 -
[LeetCode]160. 相交链表
题目输入两个链表,找出它们的第一个公共节点。如下面的两个链表:在节点 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 为 [4,1,8,4,5],链表 B 为 [5,原创 2020-07-14 01:02:38 · 101 阅读 · 0 评论 -
[LeetCode]264. 丑数 II
题目编写一个程序,找出第 n 个丑数。丑数就是质因数只包含 2, 3, 5 的正整数。示例:输入: n = 10输出: 12解释: 1, 2, 3, 4, 5, 6, 8, 9, 10, 12 是前 10 个丑数。说明:1 是丑数。n 不超过1690。解题思路详细思路请参考 (面试题49)丑数代码class Solution { public int nthUglyNumber(int n) { if(n<=0){ ret原创 2020-07-14 00:49:05 · 92 阅读 · 0 评论 -
[LeetCode]263. 丑数
题目编写一个程序判断给定的数是否为丑数。丑数就是只包含质因数 2, 3, 5 的正整数。示例 1:输入: 6输出: true解释: 6 = 2 × 3示例 2:输入: 8输出: true解释: 8 = 2 × 2 × 2示例 3:输入: 14输出: false 解释: 14 不是丑数,因为它包含了另外一个质因数 7。说明:1 是丑数。输入不会超过 32 位有符号整数的范围: [−2^31, 2^31 − 1]。解题思路根据定义,丑数只能被2,3,5整除,所以原创 2020-07-14 00:46:31 · 101 阅读 · 0 评论 -
[LeetCode]44. 通配符匹配
题目给定一个字符串 (s) 和一个字符模式 (p) ,实现一个支持 '?' 和 '*' 的通配符匹配。'?' 可以匹配任何单个字符。'*' 可以匹配任意字符串(包括空字符串)。两个字符串完全匹配才算匹配成功。说明:s 可能为空,且只包含从 a-z 的小写字母。p 可能为空,且只包含从 a-z 的小写字母,以及字符 ? 和 *。示例 1:输入:s = "aa"p = "a"输出: false解释: "a" 无法匹配 "aa" 整个字符串。示例 2:输入:s = "aa"原创 2020-07-12 19:29:45 · 301 阅读 · 0 评论 -
[LeetCode]32. 最长有效括号
题目给定一个只包含 ‘(’ 和 ‘)’ 的字符串,找出最长的包含有效括号的子串的长度。示例 1:输入: "(()"输出: 2解释: 最长有效括号子串为 "()"示例 2:输入: ")()())"输出: 4解释: 最长有效括号子串为 "()()"解题思路解法一:动态规划定义 dp[i] 表示以下标 i 字符结尾的最长有效括号的长度,首先将 dp 数组全部初始化为 0 。显然有效的子串一定以 ‘)’ 结尾,因此以 ‘(’ 结尾的子串对应的 dp 值必定为 0 ,我们只需要求解 ‘)’原创 2020-07-12 19:26:31 · 103 阅读 · 0 评论 -
[LeetCode]400. 第N个数字
题目在无限的整数序列 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, …中找到第 n 个数字。注意:n 是正数且在32位整数范围内 ( n < 2^31)。示例 1:输入:3输出:3示例 2:输入:11输出:0说明:第11个数字在序列 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, ... 里是0,它是10的一部分。解题思路1位数:1~9,共9个,占了19=9位;2位数:10~99,共90个,占了290=180位原创 2020-07-12 19:13:13 · 246 阅读 · 0 评论 -
[LeetCode]233. 数字 1 的个数
题目给定一个整数 n,计算所有小于等于 n 的非负整数中数字 1 出现的个数。示例:输入: 13输出: 6 解释: 数字 1 出现在以下数字中: 1, 10, 11, 12, 13 。解题思路参考K神思路 面试题43. 1~n 整数中 1 出现的次数代码class Solution { public int countDigitOne(int n) { if(n<=0){ return 0; } int原创 2020-07-12 19:10:38 · 119 阅读 · 0 评论 -
[LeetCode]108. 将有序数组转换为二叉搜索树
题目将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。示例:给定有序数组: [-10,-3,0,5,9],一个可能的答案是:[0,-3,9,-10,null,5],它可以表示下面这个高度平衡二叉搜索树: 0 / \ -3 9 / / -10 5解题思路选择中间位置左边的数字作为根节点,其余的数字分别位于平衡二叉搜索树的左子树和右子树中,左子树原创 2020-07-12 19:06:58 · 101 阅读 · 0 评论 -
[LeetCode]295. 数据流的中位数
题目中位数是有序列表中间的数。如果列表长度是偶数,中位数则是中间两个数的平均值。例如,[2,3,4] 的中位数是 3[2,3] 的中位数是 (2 + 3) / 2 = 2.5设计一个支持以下两种操作的数据结构:void addNum(int num) - 从数据流中添加一个整数到数据结构中。double findMedian() - 返回目前所有元素的中位数。示例:addNum(1)addNum(2)findMedian() -> 1.5addNum(3) findMed原创 2020-07-12 18:17:05 · 90 阅读 · 0 评论 -
[LeetCode]378. 有序矩阵中第K小的元素
题目给定一个 n x n 矩阵,其中每行和每列元素均按升序排序,找到矩阵中第 k 小的元素。请注意,它是排序后的第 k 小元素,而不是第 k 个不同的元素。示例:matrix = [ [ 1, 5, 9], [10, 11, 13], [12, 13, 15]],k = 8,返回 13。提示:你可以假设 k 的值永远是有效的,1 ≤ k ≤ n^2 。解题思路解法一:大根堆略解法二:二分查找矩阵内的元素是从左上到右下递增的,整个二维数组中 matrix[原创 2020-07-12 18:01:35 · 184 阅读 · 0 评论 -
[LeetCode]718. 最长重复子数组
题目给两个整数数组 A 和 B ,返回两个数组中公共的、长度最长的子数组的长度。示例:输入:A: [1,2,3,2,1]B: [3,2,1,4,7]输出:3解释:长度最长的公共子数组是 [3, 2, 1] 。提示:1 <= len(A), len(B) <= 10000 <= A[i], B[i] < 100解题思路解法一:动态规划dp[i+1][j+1] 表示以 A[i]、B[j] 结尾长度分别为 i+1、j+1 的序列的公共子数组长度,若 A[i原创 2020-07-12 17:52:32 · 162 阅读 · 0 评论 -
[LeetCode]215. 数组中的第K个最大元素
题目在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。示例 1:输入: [3,2,1,5,6,4] 和 k = 2输出: 5示例 2:输入: [3,2,3,1,2,4,5,5,6] 和 k = 4输出: 4说明:你可以假设 k 总是有效的,且 1 ≤ k ≤ 数组的长度。解题思路解法一:小根堆由于Java中优先队列默认是小根堆,所以可以遍历整个数组,在 for 循环里面判断小根堆的 size() 是否大于原创 2020-06-30 01:38:11 · 178 阅读 · 0 评论 -
[LeetCode]209. 长度最小的子数组
题目给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的连续子数组,并返回其长度。如果不存在符合条件的连续子数组,返回 0。示例:输入:s = 7, nums = [2,3,1,2,4,3]输出:2解释:子数组 [4,3] 是该条件下的长度最小的连续子数组。进阶:如果你已经完成了 O(n) 时间复杂度的解法, 请尝试 O(n log n) 时间复杂度的解法。解题思路定义两个指针 i 和 j 分别表示子数组的开始位置和结束位置,维护变量 sum原创 2020-06-30 01:23:05 · 98 阅读 · 0 评论 -
[LeetCode]41. 缺失的第一个正数
题目给你一个未排序的整数数组,请你找出其中没有出现的最小的正整数。示例 1:输入: [1,2,0]输出: 3示例 2:输入: [3,4,-1,1]输出: 2示例 3:输入: [7,8,9,11,12]输出: 1提示:你的算法的时间复杂度应为O(n),并且只能使用常数级别的额外空间。解题思路因为我们要找的数在 [1, N + 1] 里,最后 N + 1 这个元素我们不用找,只有在前面的 N 个元素都找不到的情况下,我们才返回 N + 1。所以我们可以把原始的数组当做哈希表来使原创 2020-06-28 01:23:51 · 179 阅读 · 0 评论 -
[LeetCode]110. 平衡二叉树
题目给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。示例 1:给定二叉树 [3,9,20,null,null,15,7] 3 / \ 9 20 / \ 15 7返回 true 。示例 2:给定二叉树 [1,2,2,3,3,null,null,4,4] 1 / \ 2 2 / \ 3 3 / \ 4原创 2020-06-28 01:21:19 · 88 阅读 · 0 评论 -
[LeetCode]104. 二叉树的最大深度
题目给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最大深度 3 。解题思路详细思路请参考 剑指 Offer 55 - I. 二叉树的深度代码解法一:DFS/** * Definition for a binary tree node. * publi原创 2020-06-28 01:10:06 · 207 阅读 · 0 评论 -
[LeetCode]65. 有效数字
题目验证给定的字符串是否可以解释为十进制数字。例如:"0" => true" 0.1 " => true"abc" => false"1 a" => false"2e10" => true" -90e3 " => true" 1e" => false"e3" => false" 6e-1" => true" 99e2.5 " => false"53.5e93" => true" --6 " => false原创 2020-06-28 01:05:13 · 114 阅读 · 0 评论 -
[LeetCode]139. 单词拆分
题目给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict,判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词。说明:拆分时可以重复使用字典中的单词。你可以假设字典中没有重复的单词。示例 1:输入: s = "leetcode", wordDict = ["leet", "code"]输出: true解释: 返回 true 因为 "leetcode" 可以被拆分成 "leet code"。示例 2:输入: s = "applepenapple", wordD原创 2020-06-28 00:59:02 · 143 阅读 · 0 评论 -
[LeetCode]16. 最接近的三数之和
题目给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。示例:输入:nums = [-1,2,1,-4], target = 1输出:2解释:与 target 最接近的和是 2 (-1 + 2 + 1 = 2) 。提示:3 <= nums.length <= 10^3-10^3 <= nums[i] <= 10^3-10^4 &l原创 2020-06-28 00:56:07 · 171 阅读 · 1 评论 -
[LeetCode]113. 路径总和 II
题目给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径。说明: 叶子节点是指没有子节点的节点。示例:给定如下二叉树,以及目标和 sum = 22, 5 / \ 4 8 / / \ 11 13 4 / \ / \7 2 5 1返回:[ [5,4,11,2], [5,8,4,5]]解题思路详细思路请参考 剑指 Offer 34. 二叉树中和为某一值的路径代码/**原创 2020-06-23 22:22:44 · 111 阅读 · 0 评论 -
[LeetCode]67. 二进制求和
题目给你两个二进制字符串,返回它们的和(用二进制表示)。输入为 非空 字符串且只包含数字 1 和 0。示例 1:输入: a = "11", b = "1"输出: "100"示例 2:输入: a = "1010", b = "1011"输出: "10101"提示:每个字符串仅由字符 '0' 或 '1' 组成。1 <= a.length, b.length <= 10^4字符串如果不是 "0" ,就都不含前导零。解题思路模拟二进制运算,满二进一。首先将两个字符串原创 2020-06-23 22:17:03 · 114 阅读 · 0 评论 -
[LeetCode]124. 二叉树中的最大路径和
题目给定一个非空二叉树,返回其最大路径和。本题中,路径被定义为一条从树中任意节点出发,达到任意节点的序列。该路径至少包含一个节点,且不一定经过根节点。示例 1:输入: [1,2,3] 1 / \ 2 3输出: 6示例 2:输入: [-10,9,20,null,null,15,7] -10 / \ 9 20 / \ 15 7输出: 42解题思路先实现一个函数能够计算二叉树中的一个节点的最大贡献值,具体原创 2020-06-21 17:29:22 · 177 阅读 · 0 评论 -
[LeetCode]10. 正则表达式匹配
题目给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 '.' 和 '*' 的正则表达式匹配。'.' 匹配任意单个字符'*' 匹配零个或多个前面的那一个元素所谓匹配,是要涵盖 整个 字符串 s的,而不是部分字符串。说明:s 可能为空,且只包含从 a-z 的小写字母。p 可能为空,且只包含从 a-z 的小写字母,以及字符 . 和 *。示例 1:输入:s = "aa"p = "a"输出: false解释: "a" 无法匹配 "aa" 整个字符串。示例 2:输入:s原创 2020-06-21 13:39:12 · 129 阅读 · 0 评论 -
[LeetCode]125. 验证回文串
题目给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。示例 1:输入: "A man, a plan, a canal: Panama"输出: true示例 2:输入: "race a car"输出: false解题思路首先先将字符串里的字母全部转为小写字母存放在新的字符串上,然后在新字符串上使用双指针遍历。在移动任意一个指针时,需要不断地向另一指针的方向移动,如果遇到非字母或者数字的字符就跳过,直到遇到一原创 2020-06-19 21:42:11 · 121 阅读 · 0 评论 -
[LeetCode]191. 位1的个数
题目编写一个函数,输入是一个无符号整数,返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为汉明重量)。示例 1:输入:00000000000000000000000000001011输出:3解释:输入的二进制串 00000000000000000000000000001011 中,共有三位为 '1'。示例 2:输入:00000000000000000000000010000000输出:1解释:输入的二进制串 00000000000000000000000010000000 中,共有原创 2020-06-18 21:09:58 · 226 阅读 · 0 评论 -
[LeetCode]1028. 从先序遍历还原二叉树
题目我们从二叉树的根节点 root 开始进行深度优先搜索。在遍历中的每个节点处,我们输出 D 条短划线(其中 D 是该节点的深度),然后输出该节点的值。(如果节点的深度为 D,则其直接子节点的深度为 D + 1。根节点的深度为 0)。如果节点只有一个子节点,那么保证该子节点为左子节点。给出遍历输出 S,还原树并返回其根节点 root。示例 1:输入:"1-2--3--4-5--6--7"输出:[1,2,5,3,4,6,7]示例 2:输入:"1-2--3---4-5--6---7"输原创 2020-06-18 21:00:47 · 231 阅读 · 0 评论 -
[LeetCode]343. 整数拆分
题目给定一个正整数 n,将其拆分为至少两个正整数的和,并使这些整数的乘积最大化。 返回你可以获得的最大乘积。示例 1:输入: 2输出: 1解释: 2 = 1 + 1, 1 × 1 = 1。示例 2:输入: 10输出: 36解释: 10 = 3 + 3 + 4, 3 × 3 × 4 = 36。说明: 你可以假设 n 不小于 2 且不大于 58。解题思路详细思路请参考 面试题14- I. 剪绳子代码解法一:动态规划class Solution { public int原创 2020-06-17 21:15:58 · 144 阅读 · 0 评论 -
[LeetCode]1014. 最佳观光组合
题目给定正整数数组 A,A[i] 表示第 i 个观光景点的评分,并且两个景点 i 和 j 之间的距离为 j - i。一对景点(i < j)组成的观光组合的得分为(A[i] + A[j] + i - j):景点的评分之和减去它们两者之间的距离。返回一对观光景点能取得的最高分。示例:输入:[8,1,5,2,6]输出:11解释:i = 0, j = 2, A[i] + A[j] + i - j = 8 + 5 + 0 - 2 = 11提示:2 <= A.length <=原创 2020-06-17 21:06:40 · 116 阅读 · 0 评论 -
[LeetCode]79. 单词搜索
题目给定一个二维网格和一个单词,找出该单词是否存在于网格中。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。示例:board =[ ['A','B','C','E'], ['S','F','C','S'], ['A','D','E','E']]给定 word = "ABCCED", 返回 true给定 word = "SEE", 返回 true给定 word = "ABCB", 返回原创 2020-06-16 20:09:31 · 104 阅读 · 0 评论 -
[LeetCode]297. 二叉树的序列化与反序列化
题目序列化是将一个数据结构或者对象转换为连续的比特位的操作,进而可以将转换后的数据存储在一个文件或者内存中,同时也可以通过网络传输到另一个计算机环境,采取相反方式重构得到原数据。请设计一个算法来实现二叉树的序列化与反序列化。这里不限定你的序列 / 反序列化算法执行逻辑,你只需要保证一个二叉树可以被序列化为一个字符串并且将这个字符串反序列化为原始的树结构。示例:你可以将以下二叉树: 1 / \ 2 3 / \ 4 5序列化为 "[1,2,3,null,原创 2020-06-16 17:29:12 · 148 阅读 · 0 评论