![](https://img-blog.csdnimg.cn/20200420153641144.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
LC&Coder
做题记录。应该早点写刷题笔记的。。
香榭的落叶l
这个作者很懒,什么都没留下…
展开
-
计算数组的最小和
题目数组小和的定义如下:例如,数组s = [1, 3, 5, 2, 4, 6],在s[0]的左边小于或等于s[0]的数的和为0;在s[1]的左边小于或等于s[1]的数的和为1;在s[2]的左边小于或等于s[2]的数的和为1+3=4;在s[3]的左边小于或等于s[3]的数的和为1;在s[4]的左边小于或等于s[4]的数的和为1+3+2=6;在s[5]的左边小于或等于s[5]的数的和为1+3+5+2+4=15。所以s的小和为0+1+4+1+6+15=27给定一个数组s,实现函数返回s的小和原创 2020-10-26 17:40:37 · 909 阅读 · 1 评论 -
LeetCode剑指 Offer 07. 重建二叉树
题目输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。链接/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */class Solution {原创 2020-08-07 21:42:27 · 121 阅读 · 0 评论 -
LeetCode剑指 Offer 11. 旋转数组的最小数字
题目把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如,数组 [3,4,5,1,2] 为 [1,2,3,4,5] 的一个旋转,该数组的最小值为1。链接思路二分,只不过注意旋转点需要判断。如果num[mid]>num[right],说明旋转点一定在mid右边[mid+1,right]闭区间中因为如果旋转点在mid左边,说明mid到right一定是升序,不可能出现num[mid]>num[right]否则旋原创 2020-07-22 11:02:07 · 96 阅读 · 0 评论 -
LeetCode 167. 两数之和 II - 输入有序数组,15. 三数之和
题目给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数。函数应该返回这两个下标值 index1 和 index2,其中 index1 必须小于 index2。链接说明:返回的下标值(index1 和 index2)不是从零开始的。你可以假设每个输入只对应唯一的答案,而且你不可以重复使用相同的元素。思路HashMap,O(n)扫描,查找target - numbers[iclass Solution { public int[] twoSum(int[] numb原创 2020-07-20 12:17:33 · 129 阅读 · 0 评论 -
LeetCode785. 判断二分图
题目给定一个无向图graph,当这个图为二分图时返回true。如果我们能将一个图的节点集合分割成两个独立的子集A和B,并使图中的每一条边的两个节点一个来自A集合,一个来自B集合,我们就将这个图称为二分图。graph将会以邻接表方式给出,graph[i]表示图中与节点i相连的所有节点。每个节点都是一个在0到graph.length-1之间的整数。这图中没有自环和平行边: graph[i] 中不存在i,并且graph[i]中没有重复的值。链接思路一开始没读懂题。。他这个邻接表有点意思,一共graph.原创 2020-07-16 11:39:12 · 127 阅读 · 0 评论 -
LeetCode96. 不同的二叉搜索树
题目给定一个整数 n,求以 1 … n 为节点组成的二叉搜索树有多少种?链接思路一个二叉搜索树,根左边与右边所组成的个数的积即为所有个数。设G(n)为n个节点所能组成的二叉搜索树的个数。设F(i) i∈[1,n]是为以i为根节点,所能组成的二叉搜索树的个数。有G(n) = F(1) + F(2) + ... + F(n)对于每个节点i,它的左子树[1,i-1],有i-1个节点,右子树[i+1,n],有n-i个节点。所以F(i) = G(i-1) * G(n-i)。所以G(n) = G(0原创 2020-07-15 10:55:22 · 128 阅读 · 0 评论 -
LeetCode174. 地下城游戏
题目一些恶魔抓住了公主(P)并将她关在了地下城的右下角。地下城是由 M x N 个房间组成的二维网格。我们英勇的骑士(K)最初被安置在左上角的房间里,他必须穿过地下城并通过对抗恶魔来拯救公主。骑士的初始健康点数为一个正整数。如果他的健康点数在某一时刻降至 0 或以下,他会立即死亡。有些房间由恶魔守卫,因此骑士在进入这些房间时会失去健康点数(若房间里的值为负整数,则表示骑士将损失健康点数);其他房间要么是空的(房间里的值为 0),要么包含增加骑士健康点数的魔法球(若房间里的值为正整数,则表示骑士将增加健原创 2020-07-12 10:50:54 · 115 阅读 · 0 评论 -
LeetCode63. 不同路径 II
题目一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径?链接思路一开始没好好读题,想着上下左右dfs。。机器人只能向下或者向右移动一步。到达位置(i,j)时,机器人只有可能是从(i - 1, j)或者(i, j - 1)着两个位置移动到达。所以能到达位置(i, j)的路径数为到达(i - 1,原创 2020-07-06 12:13:23 · 185 阅读 · 1 评论 -
LeetCode108. 将有序数组转换为二叉搜索树
题目将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。链接思路数组有序,二叉搜索树,还要保证平衡。那就二分,每次选mid为根节点,左右子节点递归在[left, mid - 1], [mid + 1, right]这两个区间内建立,尽可能保证每个节点的左右子节点都存在,直到叶子节点,即区间长度为1结束。class Solution { public TreeNode sortedArray原创 2020-07-03 11:31:38 · 108 阅读 · 0 评论 -
LeetCode378. 有序矩阵中第K小的元素
题目给定一个 n x n 矩阵,其中每行和每列元素均按升序排序,找到矩阵中第 k 小的元素。请注意,它是排序后的第 k 小元素,而不是第 k 个不同的元素。链接思路二分。。真想不到。。由于矩阵的性质,每个元素的左上角的所有元素都小于等于它,所以可以从矩阵左下角开始遍历,可以在O(n)时间内找到所有小于等于某个元素的个数。二分,left = matrix[0][0], right = matrix[n - 1][n - 1],第k小的元素肯定在这个区间内,所以对这个区间内的值进行二分。为什么最原创 2020-07-02 12:16:12 · 113 阅读 · 0 评论 -
LeetCode209. 长度最小的子数组
题目给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的连续子数组,并返回其长度。如果不存在符合条件的连续子数组,返回 0。链接思路连续子数组,容易想到滑动窗口。注意一下窗口内元素的和的计算。右边界扩大时先移动边界后加上nums[right]左边界收缩时先减去nums[left]在移动左边界class Solution { public int minSubArrayLen(int s, int[] nums) { int l原创 2020-06-28 16:14:13 · 84 阅读 · 0 评论 -
LeetCode41. 缺失的第一个正数
题目给你一个未排序的整数数组,请你找出其中没有出现的最小的正整数。链接思路普通方法,set直接淦(/dog)class Solution { public int firstMissingPositive(int[] nums) { Set<Integer>set = new HashSet<>(); int res = 1; for(int num : nums){ set.add(num)原创 2020-06-27 11:18:57 · 108 阅读 · 0 评论 -
LeetCode剑指 Offer 57 - II. 和为s的连续正数序列
题目输入一个正整数 target ,输出所有和为 target 的连续正整数序列(至少含有两个数)。序列内的数字由小到大排列,不同序列按照首个数字从小到大排列。链接思路以前做了都忘了,滑动窗口的印象不深。。滑动窗口右边界注意初始化为1或者2,别和二分的right搞混了。窗口始终向右移动,和较小右边界扩张,和较大右移左边界,直到左边界移动到阈值。//牛客啰嗦版本,有一说一ArrayList<ArrayList<Integer>>比数组好多了//但也好不到哪去。。publ原创 2020-06-25 15:35:55 · 92 阅读 · 0 评论 -
LeetCode16. 最接近的三数之和
题目给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。链接思路暴力,3个循环。。class Solution { public int threeSumClosest(int[] nums, int target) { Arrays.sort(nums); int len = nums.length; int原创 2020-06-24 11:59:53 · 94 阅读 · 0 评论 -
LeetCode面试题 16.18. 模式匹配
题目你有两个字符串,即pattern和value。 pattern字符串由字母"a"和"b"组成,用于描述字符串中的模式。例如,字符串"catcatgocatgo"匹配模式"aabab"(其中"cat"是"a",“go"是"b”),该字符串也匹配像"a"、"ab"和"b"这样的模式。但需注意"a"和"b"不能同时表示相同的字符串。编写一个方法判断value字符串是否匹配pattern字符串。链接思路不会。。看题解重新注释一般。。class Solution { int aCount;原创 2020-06-23 11:39:11 · 181 阅读 · 0 评论 -
LeetCode124. 二叉树中的最大路径和
题目给定一个非空二叉树,返回其最大路径和。本题中,路径被定义为一条从树中任意节点出发,达到任意节点的序列。该路径至少包含一个节点,且不一定经过根节点。链接思路又是个dfs,要求是任意节点到另一节点的路径,可以只有一个节点,节点中可有负数。dfs计算每个节点的最大贡献值。对于叶子节点,最大贡献值即为其本身。对于非叶子节点,其最大贡献值即为其本身加上max(左子节点最大贡献值,右子节点最大贡献值)。由于左右两边贡献都有负数的情况,负数肯定不能再加,所以需要把负数转换为零。处理完节点的最大贡献值,就原创 2020-06-21 10:59:39 · 136 阅读 · 0 评论 -
LeetCode从先序遍历还原二叉树
题目我们从二叉树的根节点 root 开始进行深度优先搜索。在遍历中的每个节点处,我们输出 D 条短划线(其中 D 是该节点的深度),然后输出该节点的值。(如果节点的深度为 D,则其直接子节点的深度为 D + 1。根节点的深度为 0)。如果节点只有一个子节点,那么保证该子节点为左子节点。给出遍历输出 S,还原树并返回其根节点 root。链接思路先序遍历为根,左,右。记当前节点为 TTT,上一个节点为 SSS,那么实际上只有两种情况:TTT 是 SSS 的左子节点;TTT 是根节点原创 2020-06-18 12:44:59 · 294 阅读 · 0 评论 -
LeetCode297. 二叉树的序列化与反序列化
题目序列化是将一个数据结构或者对象转换为连续的比特位的操作,进而可以将转换后的数据存储在一个文件或者内存中,同时也可以通过网络传输到另一个计算机环境,采取相反方式重构得到原数据。请设计一个算法来实现二叉树的序列化与反序列化。这里不限定你的序列 / 反序列化算法执行逻辑,你只需要保证一个二叉树可以被序列化为一个字符串并且将这个字符串反序列化为原始的树结构。链接思路广度优先的应用,只需在存储字符串的时候加分隔符。/** * Definition for a binary tree node. *原创 2020-06-16 10:35:49 · 141 阅读 · 0 评论 -
LeetCode1300. 转变数组后最接近目标值的数组和
题目给你一个整数数组 arr 和一个目标值 target ,请你返回一个整数 value ,使得将数组中所有大于 value 的值变成 value 后,数组的和最接近 target (最接近表示两者之差的绝对值最小)。如果有多种使得和最接近 target 的方案,请你返回这些整数中的最小值。请注意,答案不一定是 arr 中的数字。链接思路一开始想用平均数,但是数组中不是所有元素都需要变为value。。确定value的取值范围为[0,max(arr)]设为threshold,则需要确定使得数组元原创 2020-06-14 11:35:38 · 222 阅读 · 0 评论 -
LeetCode面试题46. 把数字翻译成字符串
题目给定一个数字,我们按照如下规则把它翻译为字符串:0 翻译成 “a” ,1 翻译成 “b”,……,11 翻译成 “l”,……,25 翻译成 “z”。一个数字可能有多个翻译。请编程实现一个函数,用来计算一个数字有多少种不同的翻译方法。链接思路写了个dfs居然还双百ac了。。由于数字组合在26以内可翻译,即每次选择两个字符时需要判断是否小于26。直接dfs,动态规划可能好点,但是没想到。。class Solution { private char[]number; private in原创 2020-06-09 21:42:40 · 154 阅读 · 0 评论 -
LeetCode990. 等式方程的可满足性
题目给定一个由表示变量之间关系的字符串方程组成的数组,每个字符串方程 equations[i] 的长度为 4,并采用两种不同的形式之一:“a==b” 或 “a!=b”。在这里,a 和 b 是小写字母(不一定不同),表示单字母变量名。只有当可以将整数分配给变量名,以便满足所有给定的方程时才返回 true,否则返回 false。链接思路不会并查集,以前应该听过,但是不会写,看了看题解,感觉有点像套娃(/dog)。思路其实比较好想,等式具有传递性,同一组的分到一起,最后再遍历不等式,查找他们是否根据原创 2020-06-08 12:11:25 · 130 阅读 · 0 评论 -
LeetCode128. 最长连续序列
题目给定一个未排序的整数数组,找出最长连续序列的长度。要求算法的时间复杂度为 O(n)。链接思路暴力方法很好想,set去重,然后遍历每个元素,查找他后面的元素class Solution { public int longestConsecutive(int[] nums) { Set<Integer>set=new HashSet<>(); for(int x:nums){ set.add(x);原创 2020-06-06 11:36:08 · 97 阅读 · 0 评论 -
LeetCode面试题29. 顺时针打印矩阵
题目输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。链接思路模拟,就是循环方法不容易想到。只能看题解。。class Solution { public int[] spiralOrder(int[][] matrix) { if(matrix.length == 0) return new int[0]; int left = 0, right = matrix[0].length - 1, top = 0, bottom =原创 2020-06-05 21:01:40 · 128 阅读 · 0 评论 -
LeetCode837. 新21点
题目爱丽丝参与一个大致基于纸牌游戏 “21点” 规则的游戏,描述如下:爱丽丝以 0 分开始,并在她的得分少于 K 分时抽取数字。 抽取时,她从 [1, W] 的范围中随机获得一个整数作为分数进行累计,其中 W 是整数。 每次抽取都是独立的,其结果具有相同的概率。当爱丽丝获得不少于 K 分时,她就停止抽取数字。 爱丽丝的分数不超过 N 的概率是多少?链接思路设dp[i]表示当积分为i时,到游戏结束获胜的概率,即i<=N。考虑当积分为K-1时,还能继续抽取数字抽取完后的积分在[K,(原创 2020-06-03 12:57:54 · 105 阅读 · 0 评论 -
LeetCode1431. 拥有最多糖果的孩子
儿童节快乐给你一个数组 candies 和一个整数 extraCandies ,其中 candies[i] 代表第 i 个孩子拥有的糖果数目。对每一个孩子,检查是否存在一种方案,将额外的 extraCandies 个糖果分配给孩子们之后,此孩子有 最多 的糖果。注意,允许有多个孩子同时拥有 最多 的糖果数目。链接思路没有,直接ac(/dog)class Solution { public List<Boolean> kidsWithCandies(int[] candies,原创 2020-06-01 10:41:22 · 168 阅读 · 0 评论 -
LeetCode101. 对称二叉树
题目给定一个二叉树,检查它是否是镜像对称的。链接思路镜像对称从root的左右孩子开始判断若左右孩子都不为空,判断值是否相等,不相等返回false,相等则下层递归(左孩子.left,右孩子.right)&&(右孩子.left,左孩子.right)。若左右孩子有一个为空,返回false/** * Definition for a binary tree node. * public class TreeNode { * int val; * Tre原创 2020-05-31 10:50:23 · 163 阅读 · 0 评论 -
LeetCode84. 柱状图中最大的矩形
题目给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。求在该柱状图中,能够勾勒出来的矩形的最大面积。链接思路暴力,遍历所有的柱子,找到最近小于它高度的柱子。class Solution { public int largestRectangleArea(int[] heights) { int len=heights.length; int ans=0; for(int i=0;i<len;i+原创 2020-05-30 13:53:41 · 108 阅读 · 0 评论 -
LeetCode198. 打家劫舍
题目你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。链接思路sb题,a了a了(/dog)class Solution { public int rob(int[] nums) { int len=nums.length;原创 2020-05-29 10:00:17 · 338 阅读 · 0 评论 -
LeetCode974. 和可被 K 整除的子数组
题目给定一个整数数组 A,返回其中元素之和可被 K 整除的(连续、非空)子数组的数目。链接思路560题的换皮题目,想到了前缀和不知道同余定理。。简单说就是mmm是大于1的整数,aaa、bbb 是整数,如果m∣(a−b)m|(a-b)m∣(a−b),则称aaa与bbb关于模mmm同余。由定义,(a-b) mod m -> a mod == b mod m用map存储每个前缀和,以模结果为key,出现的次数为value,遇到相同的key即找打了一个满足和被K整除的子串class Solu原创 2020-05-27 11:39:09 · 140 阅读 · 0 评论 -
LeetCode287. 寻找重复数
题目给定一个包含 n + 1 个整数的数组 nums,其数字都在 1 到 n 之间(包括 1 和 n),可知至少存在一个重复的整数。假设只有一个重复的整数,找出这个重复的数。链接思路空间换时间,不过不符合题目要求。。class Solution { public int findDuplicate(int[] nums) { int[]numsCount=new int[nums.length+1]; for(int x:nums){原创 2020-05-26 11:21:38 · 358 阅读 · 0 评论 -
LeetCode146. LRU缓存机制
题目运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制。它应该支持以下操作: 获取数据 get 和 写入数据 put 。获取数据 get(key) - 如果密钥 (key) 存在于缓存中,则获取密钥的值(总是正数),否则返回 -1。写入数据 put(key, value) - 如果密钥已经存在,则变更其数据值;如果密钥不存在,则插入该组「密钥/数据值」。当缓存容量达到上限时,它应该在写入新数据之前删除最久未使用的数据值,从而为新的数据值留出空间。链接思路一开始想的是双端队原创 2020-05-25 11:51:18 · 117 阅读 · 0 评论 -
LeetCode4. 寻找两个正序数组的中位数
题目给定两个大小为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出这两个正序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n))。你可以假设 nums1 和 nums2 不会同时为空。链接思路先O(m+n)ac了,过段时间再仔细看看二分解法。class Solution { public double findMedianSortedArrays(int[] nums1, int[] nums2) { int l1=nums1.原创 2020-05-24 11:31:23 · 151 阅读 · 0 评论 -
LeetCode105.从前序与中序遍历序列构造二叉树
题目根据一棵树的前序遍历与中序遍历构造二叉树。注意:你可以假设树中没有重复的元素。例如,给出前序遍历 preorder = [3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7]链接思路分治: 树可递归定义。前序遍历为:根—左子树—右子树中序遍历为:左子树—根—右子树由于前序遍历的第一个节点为根节点,所以可在中序遍历中找出这个根节点(因为节点不重复)下标idx,找出之后,可由中序遍历确定这个根节点的左子树的节点个数 idx减去中序数组左边界,设为len原创 2020-05-22 11:29:11 · 173 阅读 · 0 评论 -
LeetCode1371. 每个元音包含偶数次的最长子字符串
题目给你一个字符串 s ,请你返回满足以下条件的最长子字符串的长度:每个元音字母,即 ‘a’,‘e’,‘i’,‘o’,‘u’ ,在子字符串中都恰好出现了偶数次。链接思路首先想到暴力,两层循环,里面再套一层判断奇偶,结果自然是超时。再一想想到了前缀和,记录一下每个位置之前每个元音字母出现的次数,计算的时候相减,但写了个二维数组,调半天不对。。唉,还是看题解吧。。这些方法到底是怎么想的,真的做多就能有经验吗。。字符串的子串里出现的元音字母奇偶的个数设为状态码state可以简化为一个五位的二进制数,栗原创 2020-05-20 16:39:54 · 324 阅读 · 0 评论 -
LeetCode680. 验证回文字符串 Ⅱ
题目给定一个非空字符串 s,最多删除一个字符。判断是否能成为回文字符串。链接思路头尾指针,当指向的元素不同时,有一次删除的机会,头指针后移或者尾指针前移,再遇到不相同返回false。class Solution { public boolean validPalindrome(String s) { int start=0,end=s.length()-1; while(start<end){ if(s.charAt(start)原创 2020-05-19 10:42:46 · 95 阅读 · 0 评论 -
LeetCode152. 乘积最大子数组
题目给你一个整数数组 nums ,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。链接思路动态规划,设dp[i]为以nums[i]结尾的连续子数组中乘积最大的值;则dp[i]=max(dp[i-1]*nums[i],nums[i]),由于存在负数,所以需要加一个维度同时存储以num[i]结尾的连续子数组中乘积最大值和最小值,当遇到nums[i]<0时,dp[i]的最大积计算时需要乘以dp[i-1]的最小积,dp[i]的最小积计算时需要乘以dp[i-原创 2020-05-18 12:31:52 · 214 阅读 · 0 评论 -
LeetCode210. 课程表 II
题目现在你总共有 n 门课需要选,记为 0 到 n-1。在选修某些课程之前需要一些先修课程。 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示他们: [0,1]给定课程总量以及它们的先决条件,返回你为了学完所有课程所安排的学习顺序。可能会有多个正确的顺序,你只要返回一种就可以了。如果不可能完成所有课程,返回一个空数组。链接示例输入: 4, [[1,0],[2,0],[3,1],[3,2]]输出: [0,1,2,3] or [0,2,1,3]解释: 总共有 4 门课程。原创 2020-05-17 11:55:48 · 225 阅读 · 0 评论 -
LeetCode25. K 个一组翻转链表
题目给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表。k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。链接思路递归,每次翻转k个节点,当不够k个节点时直接返回headclass Solution { public ListNode reverseKGroup(ListNode head, int k) { ListNode tail=head; int step=0;原创 2020-05-16 13:14:13 · 86 阅读 · 0 评论 -
LeetCode560. 和为K的子数组
题目给定一个整数数组和一个整数 k,你需要找到该数组中和为 k 的连续的子数组的个数。链接思路暴力两层for循环,外层起点,内层数组尾部,遍历到和为k结果++。前缀和+哈希表。前缀和的目的在于:当寻找到某个位置的前缀和设为preSum,在前缀和中存在preSum-k这个前缀和,即结果加一,而前缀和可能出现相同的值,所以用哈希表Map<前缀和,前缀和出现的次数>来存储。class Solution { public int subarraySum(int[] nums, int原创 2020-05-15 10:52:41 · 137 阅读 · 0 评论 -
LeetCode102. 二叉树的层序遍历
题目给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。链接思路层次遍历队列直接搞,根节点入队,每次遍历节点时记录当前队列的size,依次出队size个元素,就是当前层的所有节点。例:root入队,此时size==1,循环一次,在BFS往队列添加元素结束后,队列中存放的是第二层的全部节点,此时size==2,循环两次,取出第二层的全部节点,BFS继续入队节点,即第三层节点全部入队。官方题解初始化:i=1i = 1i=1 的时候,队列里面只有 root,是唯原创 2020-05-14 10:18:08 · 135 阅读 · 0 评论