![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 59
天玑y
向来不爱说废话
展开
-
leetcode代码记录(旋转图像
输入:matrix = [[5,1,9,11],[2,4,8,10],[13,3,6,7],[15,14,12,16]]新建一个temp代表新矩阵,元素赋值后,再将temp赋值回matrix即可(直接赋值不可以,需要一个一个元素赋值)输出:[[15,13,2,5],[14,3,4,1],[12,6,8,9],[16,7,10,11]]输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]输出:[[7,4,1],[8,5,2],[9,6,3]]这个找到旋转后的对应关系即可,原来的第。原创 2024-04-16 17:12:44 · 198 阅读 · 1 评论 -
leetcode代码记录(全排列 II
这个题继续使用回溯算法,只不过要配合剪枝操作。在每一层定义一个set作为遍历过的元素的记录,如果不在记录中则可以递归,如果在记录中则直接剪枝,为什么要剪枝呢,因为如果相同元素在次位置再递归一次,则会产生和之前递归过的一模一样的分支。输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]给定一个可包含重复数字的序列 nums ,按任意顺序 返回所有不重复的全排列。输入:nums = [1,1,2]输入:nums = [1,2,3]原创 2024-04-16 16:18:26 · 601 阅读 · 1 评论 -
leetcode代码记录(全排列
输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列。你可以 按任意顺序 返回答案。在path为空时达到终止条件,同时记录此时的排列顺序。每次递归都只扣掉一个当前元素,其余部分继续拼接好传给。利用回溯算法,可以求得各个情况下的全排列。输入:nums = [1,2,3]输出:[[0,1],[1,0]]输入:nums = [0,1]输入:nums = [1]原创 2024-04-16 14:43:52 · 307 阅读 · 1 评论 -
leetcode代码记录(Z 字形变换
取余后得到第一周期内的索引,然后再减去第一周期内的中轴,再求绝对值。之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:“PAHNAPLSIIGYIR”。由于是个周期类型分布的,所以我们对周期k取余,就可以把所有的索引放到第一个周期里,这样就好判断了。减去其可以判断得到对应的行索引(前面定义好的),在对应的行索引存入元素即可。输入:s = “PAYPALISHIRING”, numRows = 3。输入:s = “A”, numRows = 1。输出:“PAHNAPLSIIGYIR”原创 2024-04-16 00:07:00 · 542 阅读 · 1 评论 -
leetcode代码记录(最长回文子串
利用左右指针,从中间向左右扩散,同样可以检查是否为回文子串。但是回文子串可能是奇数长度,也可能是偶数长度,因此存在奇数和偶数两种扩散方式。如果字符串的反序与原始字符串相同,则该字符串称为回文字符串。如果当前回文子串的长度能比目前最长的回文子串长,则记录一下。给你一个字符串 s,找到 s 中最长的回文子串。解释:“aba” 同样是符合题意的答案。输入:s = “babad”输入:s = “cbbd”原创 2024-04-15 20:43:12 · 263 阅读 · 1 评论 -
leetcode代码记录(回文数
然后使用左右指针,从两端向中间同步逼近,判断指向的元素是否相同,如果在遍历完之前找到了对称位置对应了不同的元素,则说明不是回文数。给你一个整数 x ,如果 x 是一个回文整数,返回 true;否则,返回 false。解释:从左向右读, 为 -121。从右向左读, 为 121-。因此它不是一个回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。解释:从右向左读, 为 01。因此它不是一个回文数。例如,121 是回文,而 123 不是。输入:x = -121。输入:x = 121。原创 2024-04-15 19:44:59 · 283 阅读 · 1 评论 -
leetcode代码记录(寻找两个正序数组的中位数
利用快慢指针,求解两个有序数组的并集(并集仍然保持有序),两个指针分别从num1和num2左边向右移动,将更小的元素添加到新数组中。给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。解释:合并数组 = [1,2,3,4] ,中位数 (2 + 3) / 2 = 2.5。输入:nums1 = [1,2], nums2 = [3,4]输入:nums1 = [1,3], nums2 = [2]解释:合并数组 = [1,2,3] ,中位数 2。输出:2.50000。原创 2024-04-15 19:30:54 · 518 阅读 · 1 评论 -
leetcode代码记录(两数之和
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1]。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。输入:nums = [2,7,11,15], target = 9。输入:nums = [3,2,4], target = 6。输入:nums = [3,3], target = 6。原创 2024-04-14 23:55:49 · 328 阅读 · 1 评论 -
蓝桥杯真题代码记录(直线
给定平面上 2x3个整点(x,y)0 ≤x< 2,0≤y原创 2024-04-11 00:20:00 · 474 阅读 · 1 评论 -
蓝桥杯真题代码记录(卡片
小蓝有 k种卡片,一个班有 , 位同学,小蓝给每位同学发了两张卡片,- 位同学的两张卡片可能是同一种,也可能是不同种,两张卡片没有顺序。没有 两位同学的卡片都是一样的。给定 n,请问小蓝的卡片至少有多少种?输入一行包含一个正整数表示 n。输出一行包含一个整数,表示答案。原创 2024-04-10 23:36:49 · 356 阅读 · 1 评论 -
蓝桥杯真题代码记录(最优清零方案
给定一个长度为 N 的数列 41,42,…现在小蓝想通过若干次操作将 这个数列中每个数字清零。一定要够大,不要吝啬,我在测试的时候总是有一个是答案错误,弄半天不知道为什么,结果是初始的不够大。2.选择连续 区 个大于 0 的整数,将它们各减去1。第二行包含 N 个整数 A1,A2,··,AN。小蓝最少经过几次操作可以将整个数列清零?1.选择一个大于0的整数,将它减去1;输入第一行包含两个整数 N 和 K。输出一个整数表示答案。原创 2024-04-09 23:56:04 · 451 阅读 · 1 评论 -
蓝桥杯真题代码记录(蜂巢
对于给定的一点 O,我们以 ◎ 为原点定义坐标系,如果一个点 A 由 O点 先向 d方向走 p步再向(d+ 2)mod 6 方向(d 的顺时针 120°方向) 走 q 步到 达,则这个点的坐标定义为(a,p,q)。蜂巢由大量的六边形拼接而成,定义蜂巢中的方向为:0 表示正西方向,1 表示西偏北 60°,2 表示东偏北 60°,3 表示正东,4 表示东偏南60°,5 表示西 偏南 60°。输入一行包含6个整数 d1,p1,q1,d2,p2,q2 表示两个点的坐标,相邻两个整 数之间使用一个空格分隔。原创 2024-04-09 00:56:39 · 695 阅读 · 1 评论 -
leetcode代码记录(最长公共子序列
j-1:对应的text2索引;dp数组的含义:dp[i][j]范围内的,即text1[i - 1]、text2[j - 1]为末尾的数组对应的两个子数组的重复长度。一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。给定两个字符串 text1 和 text2,返回这两个字符串的最长 公共子序列 的长度。例如,“ace” 是 “abcde” 的子序列,但 “aec” 不是 “abcde” 的子序列。原创 2024-04-08 19:32:56 · 483 阅读 · 1 评论 -
leetcode代码记录(最长重复子数组
然后,初始化:这里只需要使得第一列和第一行都为0即可,由于真正意义上第一列和第一行应当是nums1[0]和nums2[0]并不一定为0,所以多添加了一列和一行。j-1:对应的num2索引;dp数组的含义:dp[i][j]范围内的,即nums1[i - 1]、nums2[j - 1]为末尾的数组对应的两个子数组的重复长度。输入:nums1 = [1,2,3,2,1], nums2 = [3,2,1,4,7]输入:nums1 = [0,0,0,0,0], nums2 = [0,0,0,0,0]原创 2024-04-08 17:41:43 · 388 阅读 · 1 评论 -
leetcode代码记录(最长连续递增序列
连续递增的子序列 可以由两个下标 l 和 r(l < r)确定,如果对于每个 l原创 2024-04-08 16:26:58 · 250 阅读 · 1 评论 -
leetcode代码记录(最长递增子序列
最长递增子序列,可以用一维dp解决,dp数组下标的含义:[0, i]子数组;例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。要返回的应当时所有的dp中最大的,因为dp[i]只代表以第i个节点为结尾的子序列,包含最后一个节点的dp并不一定就是最大的。解释:最长递增子序列是 [2,3,7,101],因此长度为 4。输入:nums = [10,9,2,5,3,7,101,18]输入:nums = [7,7,7,7,7,7,7]输入:nums = [0,1,0,3,2,3]原创 2024-04-08 15:46:01 · 399 阅读 · 1 评论 -
leetcode代码记录(下一个更大元素 II
后面的元素有在普通数组里找不到下一个最大元素,而在循环到第二圈的时候能找到最大元素的风险。给定一个循环数组 nums ( nums[nums.length - 1] 的下一个元素是 nums[0] ),返回 nums 中每个元素的 下一个更大元素。数字 x 的 下一个更大的元素 是按数组遍历顺序,这个数字之后的第一个比它更大的数,这意味着你应该循环地搜索它的下一个更大的数。第二个 1 的下一个最大的数需要循环搜索,结果也是 2。输入: nums = [1,2,3,4,3]输出: [2,3,4,-1,4]原创 2024-04-08 02:32:00 · 399 阅读 · 1 评论 -
leetcode代码记录(下一个更大元素 I
对于每个 0原创 2024-04-08 02:22:31 · 622 阅读 · 1 评论 -
蓝桥杯真题代码记录(数位排序
小蓝对一个数的数位之和很感兴趣, 今天他要按照数位之和给数排序。当 两个数各个数位之和不同时, 将数位和较小的排在前面, 当数位之和相等时, 将数值小的排在前面。例如, 2022 排在 409 前面, 因为 2022 的数位之和是 6, 小于 409 的数位 之和 13。给定正整数 n, m, 请问对 1 到 n 采用这种方法排序时, 排在第 m 个的元 素是多少?又如, 6 排在 2022 前面, 因为它们的数位之和相同, 而 6 小于 2022。输出一行包含一个整数, 表示答案。原创 2024-04-07 21:48:47 · 320 阅读 · 1 评论 -
蓝桥杯真题代码记录(纸张尺寸
动态规划,dp数组下标代表的是:纸张的版式,比如0代表A0、1代表A1。dp数组代表的是:长和宽,一个一维数组,第一个元素表示长、第二个元素表示宽。594mm, 在对折的过程中长度直接取 下整 (实际裁剪时可能有损耗)。输入一行包含一个字符串表示纸张的名称, 该名称一定是 A0、A1、A2、 A3、A4、A5、A6、A7、A8、A9 之一。841mm, 将 A0 纸 沿长边对折后为 A1 纸, 大小为 841mm。输出两行,每行包含一个整数,依次表示长边和短边的长度。输入纸张的名称, 请输出纸张的大小。原创 2024-04-07 11:23:38 · 381 阅读 · 1 评论 -
leetcode代码记录(两个数组的交集
给定两个数组 nums1 和 nums2 ,返回 它们的 交集。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序。输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]set的intersection方法可以求两个集合的交集,返回一个set。输入:nums1 = [1,2,2,1], nums2 = [2,2]将list转化为set可以去重。解释:[4,9] 也是可通过的。原创 2024-04-06 20:49:30 · 219 阅读 · 2 评论 -
leetcode代码记录(第一个出现两次的字母
又是一个哈希表的应用,当然这里用defaultdict比较方便,一个一个字母进行统计,只要得到的累计结果是2,则要找到字母就是它。如果 a 的 第二次 出现比 b 的 第二次 出现在字符串中的位置更靠前,则认为字母 a 在字母 b 之前出现两次。字母 ‘c’ 是第一个出现两次的字母,因为在所有字母中,‘c’ 第二次出现的下标是最小的。给你一个由小写英文字母组成的字符串 s ,请你找出并返回第一个出现 两次 的字母。只有字母 ‘d’ 出现两次,所以返回 ‘d’。输入:s = “abccbaacz”原创 2024-04-06 19:46:27 · 237 阅读 · 1 评论 -
leetcode代码记录(有效的字母异位词
这个题没有任何难度,很明显就是使用哈希表即可。哈希表有三种:list/数组、set、dict/map。这里通过defaultdict不断增加元素和累计元素出现次数,最后比较一下dic1和dic2即可知道是否是异位词。dict:呈现key-value规则(一般使用defaultdict即可)list:数值范围比较小时。set:数值范围比较大时。原创 2024-04-06 19:13:38 · 251 阅读 · 1 评论 -
leetcode代码记录(买卖股票的最佳时机 IV
解释:在第 2 天 (股票价格 = 2) 的时候买入,在第 3 天 (股票价格 = 6) 的时候卖出, 这笔交易所能获得利润 = 6-2 = 4。随后,在第 5 天 (股票价格 = 0) 的时候买入,在第 6 天 (股票价格 = 3) 的时候卖出, 这笔交易所能获得利润 = 3-0 = 3。解释:在第 1 天 (股票价格 = 2) 的时候买入,在第 2 天 (股票价格 = 4) 的时候卖出,这笔交易所能获得利润 = 4-2 = 2。输入:k = 2, prices = [3,2,6,5,0,3]原创 2024-04-06 14:07:16 · 359 阅读 · 1 评论 -
leetcode代码记录(买卖股票的最佳时机 III
解释:在第 1 天(股票价格 = 1)的时候买入,在第 5 天 (股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5-1 = 4。随后,在第 7 天(股票价格 = 1)的时候买入,在第 8 天 (股票价格 = 4)的时候卖出,这笔交易所能获得利润 = 4-1 = 3。解释:在第 4 天(股票价格 = 0)的时候买入,在第 6 天(股票价格 = 3)的时候卖出,这笔交易所能获得利润 = 3-0 = 3。输入:prices = [3,3,5,0,0,3,1,4]输入:prices = [1]原创 2024-04-06 13:49:17 · 562 阅读 · 1 评论 -
leetcode代码记录(买卖股票的最佳时机 II
解释:在第 1 天(股票价格 = 1)的时候买入,在第 5 天 (股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5 - 1 = 4。解释:在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5 - 1 = 4。随后,在第 4 天(股票价格 = 3)的时候买入,在第 5 天(股票价格 = 6)的时候卖出, 这笔交易所能获得利润 = 6 - 3 = 3。输入:prices = [7,1,5,3,6,4]原创 2024-04-05 23:58:31 · 225 阅读 · 1 评论 -
leetcode代码记录(买卖股票的最佳时机
dp数组下标的含义:这里要用到一个二维数组,我这里用第一行表示持有股票的状态、第二行表示未持有股票的状态。解释:在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5。dp数组初始化只需要初始化开头即可,dp[0][0]应当为-prices[0],dp[1][0]应当为0。给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。同时,你不能在买入前卖出股票。输入:[7,1,5,3,6,4]原创 2024-04-05 21:38:00 · 394 阅读 · 1 评论 -
leetcode代码记录(打家劫舍 III
一番侦察之后,聪明的小偷意识到“这个地方的所有房屋的排列类似于一棵二叉树”。这里,递归函数返回2个值,一个是偷这个节点时的最大金币、另一个时不偷这个节点时的最大金币。这里是个二叉树结构的打家劫舍,题目详细就不多说了,类似于之前的线性结构与环形结构,本质不变,都是相邻的房间不能偷。给定二叉树的 root。不偷当前节点时的最大金币就是左边的偷与不偷的最大值 + 右边的偷与不偷的最大值。输入: root = [3,2,3,null,3,null,1]输入: root = [3,4,5,1,3,null,1]原创 2024-04-04 21:52:05 · 396 阅读 · 1 评论 -
leetcode代码记录(打家劫舍 II
这里,环形有三种可能(由于要偷的房间可以间隔1或者2):第一个是第一个房间没有被考虑在内、第二个是最后一个房间没有被考虑在内,第三个是第一个和最后一个都没有被考虑在内。给定一个代表每个房屋存放金额的非负整数数组 nums ,请计算 在不触动警报装置的情况下 ,今晚能够偷窃到的最高金额。解释:你不能先偷窃 1 号房屋(金额 = 2),然后偷窃 3 号房屋(金额 = 2), 因为他们是相邻的。解释:你可以先偷窃 1 号房屋(金额 = 1),然后偷窃 3 号房屋(金额 = 3)。输入:nums = [0]原创 2024-04-04 20:03:23 · 429 阅读 · 1 评论 -
leetcode代码记录(打家劫舍
每间房内都藏有一定的现金,影响小偷偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。解释:偷窃 1 号房屋 (金额 = 2), 偷窃 3 号房屋 (金额 = 9),接着偷窃 5 号房屋 (金额 = 1)。,偷这个房间的情况下的最大金币数量的最大值,可以由i - 2加本房间金币,或者i - 3加本房间金币得到。解释:偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。输入:nums = [1,2,3,1]原创 2024-04-04 18:12:36 · 827 阅读 · 1 评论 -
leetcode代码记录(不同的二叉搜索树
然后,确定递推公式:比如有3个节点,那么有多少种情况:0个节点在左边、2个节点在右边;1个节点在左边、1个节点在右边;2个节点在左边、0个节点在右边。针对每一种节点情况,对应的二叉搜索树的情况都是其对应的dp。给你一个整数 n ,求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种?返回满足题意的二叉搜索树的种数。首先,确定dp数组下标的含义:dp数组的下标表示的是节点个数;确定dp数组的含义:表示的是该节点个数下二叉搜索树的种类数量。原创 2024-04-04 15:11:43 · 181 阅读 · 1 评论 -
leetcode代码记录(最大子数组和
首先确定dp数组下标的含义:表示以这个元素为结尾的连续数组;dp数组的元素值的含义:表示以这个元素为结尾的连续数组的最大和。给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。输入:nums = [-2,1,-3,4,-1,2,1,-5,4]解释:连续子数组 [4,-1,2,1] 的和最大,为 6。同时记录一下每次的最大和,将result的最大记录刷新。输入:nums = [5,4,-1,7,8]输入:nums = [1]是数组中的一个连续部分。原创 2024-04-03 23:40:05 · 379 阅读 · 1 评论 -
蓝桥杯真题代码记录(保险箱
当某位原本为 9 或 0 时可能会向前(左边)进位/退位,当最高位(左边第 一位)上的数字变化时向前的进位或退位忽略。保险箱上一开始有一个数字 x,小蓝希望把它变成 y,这样才能打开它,问 小蓝最少需要操作的次数。小蓝可以任意调整保险箱上的每个数字,每一次操作可以将其中一位增加 1 或减少 1。00000 的第 5 位减 1 变为 99999;99909 的第 3 位加 1 变为 00009。小蓝有一个保险箱,保险箱上共有 n 位数字。输入的第一行包含一个整数 n。输出一行包含一个整数表示答案。原创 2024-04-02 23:55:14 · 210 阅读 · 1 评论 -
蓝桥杯真题代码记录(管道
对于位于 Li 的阀门,它流入的水在 Ti (Ti ≥ Si) 时刻会使得从第 Li−(Ti−Si) 段到第 Li + (Ti − Si) 段的传感器检测到水流。有一根长度为 len 的横向的管道,该管道按照单位长度分为 len 段,每一段的中央有一个可开关的阀门和一个检测水流的传感器。接下来 n 行每行包含两个整数 Li , Si,用一个空格分隔,表示位于第 Li 段 管道中央的阀门会在 Si 时刻打开。输入的第一行包含两个整数 n, len,用一个空格分隔,分别表示会打开的阀门数和管道长度。原创 2024-04-02 23:52:56 · 125 阅读 · 1 评论 -
蓝桥杯真题代码记录(松散子序列
给定一个仅含小写字母的字符串 s ,假设 s 的一个子序列 t 的第 i 个字符 对应了原字符串中的第 pi 个字符。我们定义 s 的一个松散子序列为:对于 i > 1 总是有 pi − pi−1 ≥ 2。设一个子序列的价值为其包含的每个字符的价值之和 ( a ∼ z 分别为 1 ∼ 26 )。可以仔细想一想,我们可以间隔1个,那么也可以间隔2个,那可以间隔3个吗。由于递推公式需要用到前面3个元素的长度,所以,初始化最开始的3个元素。,因为有可能最后一个元素不加上的时候子序列更大。原创 2024-04-01 23:57:06 · 502 阅读 · 1 评论 -
leetcode代码记录(杨辉三角
动态规划,后面的值需要前面的值确定,就像是一个二维的斐波那契数列。首先初始化,把整个三角形的边都初始化为1;,当然是从第二行开始求解,本位置的值为上面一行里左边和正上方元素的值。把握好遍历的范围即可。输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。在「杨辉三角」中,每个数是它左上方和右上方的数的和。输入: numRows = 5。输入: numRows = 1。原创 2024-04-01 17:39:09 · 294 阅读 · 1 评论 -
leetcode代码记录(二叉树的所有路径
递归要分很多情况,如果此节点是叶子节点,则把路径的副本传入结果列表中;如果左节点是空,则去递归右节点;如果右节点是空,则去递归左节点;如果左右节点都不为空,则按后序遍历顺序遍历。二叉树求解所有路径,需要记录路径,这就想到了回溯,其实回溯无处不在。回溯和递归是相辅相成的,有递归的地方就可以加回溯。给你一个二叉树的根节点 root ,按 任意顺序 ,返回所有从根节点到叶子节点的路径。输入:root = [1,2,3,null,5]输出:[“1->2->5”,“1->3”]叶子节点 是指没有子节点的节点。原创 2024-03-27 23:59:21 · 801 阅读 · 1 评论 -
leetcode代码记录(平衡二叉树
检查是否是平衡二叉树,其实就是统计高度,然后做差,查看各个树的所有节点的高度差是否大于1。如果全部节点都满足高度差小于等于1,则说明是平衡二叉树。查看是否满足平衡二叉树条件。这里,我们令如果高度差大于1则返回-1,以-1为记号,不断返回(因为只要有一个节点不满足就能确定这个二叉树一定不是平衡二叉树了)。因此,我们只需要把计算最大高度的代码修改一下即可,因为都是在求高度。输入:root = [1,2,2,3,3,null,null,4,4]输入:root = [3,9,20,null,null,15,7]原创 2024-03-27 22:55:17 · 436 阅读 · 1 评论 -
leetcode代码记录(完全二叉树的节点个数
完全二叉树 的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若最底层为第 h 层,则该层包含 1~ 2h 个节点。统计完全二叉树的节点个数,可以使用普通方法(即随便一个遍历顺序求得节点数目)。对每一个节点进行判断,查看这个节点下面挂载的是否是满二叉树。给你一棵 完全二叉树 的根节点 root ,求出该树的节点个数。输入:root = [1,2,3,4,5,6]输入:root = [1]输入:root = []原创 2024-03-27 17:09:03 · 490 阅读 · 1 评论 -
leetcode代码记录(对称二叉树 中序遍历+回文串 为什么不行
输入:root = [1,2,2,null,3,null,3]给你一个二叉树的根节点 root , 检查它是否轴对称。输入:root = [1,2,2,3,4,4,3]原创 2024-03-26 23:53:45 · 125 阅读 · 1 评论