力扣
平常练习记录
愿成为大佬腿上的挂件
这个作者很懒,什么都没留下…
展开
-
力扣538. 把二叉搜索树转换为累加树
【代码】力扣538. 把二叉搜索树转换为累加树。原创 2024-06-04 21:10:39 · 235 阅读 · 0 评论 -
力扣108. 将有序数组转换为二叉搜索树
找割点,一步一步将原数组分开。原创 2024-06-04 20:15:43 · 350 阅读 · 0 评论 -
力扣669,修剪二叉搜索树
【代码】力扣669,修剪二叉搜索树。原创 2024-06-04 18:26:50 · 326 阅读 · 0 评论 -
力扣450,删除二叉搜索树中的节点
【代码】力扣450,删除二叉搜索树中的节点。原创 2024-05-19 14:34:39 · 299 阅读 · 0 评论 -
力扣701,二叉搜索树中的插入操作
根据二叉搜素树的特性遍历。原创 2024-05-19 12:54:20 · 221 阅读 · 0 评论 -
力扣235,236找最近公共祖先
【代码】力扣235,236找最近公共祖先。原创 2024-05-03 13:04:08 · 210 阅读 · 2 评论 -
力扣501,二叉树中的众数
法二:利用二叉搜索树的特性:中序遍历是递增的 ,双指针。给你一个含重复值的二叉搜索树(BST)的根节点。,找出并返回 BST 中的所有。如果树中有不止一个众数,可以按。(即,出现频率最高的元素)。原创 2024-05-01 13:36:24 · 294 阅读 · 0 评论 -
530,二叉搜索树的最小绝对差
差值是一个正数,其数值等于两值之差的绝对值。给你一个二叉搜索树的根节点。原创 2024-04-28 00:41:52 · 84 阅读 · 0 评论 -
力扣700,二叉搜索树中的搜索
返回以该节点为根的子树。如果节点不存在,则返回。你需要在 BST 中找到节点值等于。给定二叉搜索树(BST)的根节点。原创 2024-04-27 00:04:54 · 186 阅读 · 0 评论 -
力扣617,合并二叉树
想象一下,当你将其中一棵覆盖到另一棵之上时,两棵树上的一些节点将会重叠(而另一些不会)。你需要将这两棵树合并成一棵新二叉树。合并的规则是:如果两个节点重叠,那么将这两个节点的值相加作为合并后节点的新值;null 的节点将直接作为新二叉树的节点。合并过程必须从两个树的根节点开始。返回合并后的二叉树。原创 2024-04-26 23:31:52 · 232 阅读 · 0 评论 -
力扣654,最大二叉树
解法一:每次构建左右两边的树都新建一个新数组,比较耗空间。解法二:就在原数组上进行操作。原创 2024-04-26 00:47:24 · 235 阅读 · 1 评论 -
根据前,中(后,中)构建二叉树
是同一棵树的后序遍历,请你构造并返回这颗。,请构造二叉树并返回其根节点。是二叉树的中序遍历,原创 2024-04-25 00:03:13 · 228 阅读 · 1 评论 -
力扣112,路径总和
的路径,这条路径上所有节点值相加等于目标和。等于目标和的根节点到叶节点路径如上图所示。和一个表示目标和的整数。是指没有子节点的节点。原创 2024-04-16 00:27:23 · 212 阅读 · 0 评论 -
513.找树左下角的值
思考,在递归下便跟一个回溯,这是因为你一直递归到叶节点,然后回退的时候就要把深度减回来,如果不回溯(也就是depth--),那么你遍历完左子树,再去遍历右子树,它的深度是在原先的基础上加加。(有点绕,回头再来补)给定一个二叉树,在树的最后一行找到最左边的值。原创 2024-04-14 00:57:37 · 291 阅读 · 0 评论 -
力扣404,左叶子之和
在这个二叉树中,有两个左叶子,分别是 9 和 15,所以返回 24。,返回所有左叶子之和。是左叶子不是左孩子!原创 2024-04-11 00:14:44 · 308 阅读 · 0 评论 -
257. 二叉树的所有路径
给定一个二叉树,返回所有从根节点到叶子节点的路径。说明: 叶子节点是指没有子节点的节点。原创 2024-04-10 01:21:53 · 149 阅读 · 0 评论 -
222,完全二叉树的节点数
的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。,求出该树的节点个数。原创 2024-04-08 11:15:11 · 331 阅读 · 0 评论 -
树的最大深度
N 叉树输入按层序遍历序列化表示,每组子节点由空值分隔(请参见示例)。最大深度是指从根节点到最远叶子节点的最长路径上的节点总数。是指从根节点到最远叶子节点的最长路径上的节点数。给定一个 N 叉树,找到其最大深度。1,力扣104,二叉树的最大深度。2,力扣559,N叉树的最大深度。原创 2024-04-07 00:24:22 · 178 阅读 · 0 评论 -
101. 对称二叉树及同类题
给定一个二叉树,检查它是否是镜像对称的。原创 2024-04-05 13:25:42 · 340 阅读 · 0 评论 -
226.翻转二叉树
【代码】226.翻转二叉树。原创 2024-04-05 13:08:52 · 160 阅读 · 0 评论 -
二叉树层序遍历 及相关题目
1,力扣102给你二叉树的根节点root,返回其节点值的。(即逐层地,从左到右访问所有节点)。root = [1][[1]]root = [][][0, 2000]2,力扣107 二叉树遍历II给你二叉树的根节点root,返回其节点值。(即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)root = [1][[1]]root = [][][0, 2000]3, 力扣199二叉树的右视图给定一个二叉树的root。原创 2024-04-04 12:25:44 · 1277 阅读 · 0 评论 -
二叉树的三种遍历(迭代)
【代码】二叉树的三种遍历(迭代)原创 2024-04-04 00:21:35 · 85 阅读 · 0 评论 -
239. 滑动窗口最大值
给定一个数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。你能在线性时间复杂度内解决此题吗?返回滑动窗口中的最大值。原创 2024-04-04 00:18:48 · 195 阅读 · 0 评论 -
150. 逆波兰表达式求值
输入: ["10", "6", "9", "3", "+", "-11", " * ", "/", " * ", "17", "+", "5", "+"]给定逆波兰表达式总是有效的。去掉括号后表达式无歧义,上式即便写成 1 2 + 3 4 + * 也可以依据次序计算出正确结果。平常使用的算式则是一种中缀表达式,如 ( 1 + 2 ) * ( 3 + 4 )。该算式的逆波兰表达式写法为 ( ( 1 2 + ) ( 3 4 + ) * )。逆波兰表达式:是一种后缀表达式,所谓后缀就是指运算符写在后面。原创 2024-03-29 15:47:23 · 351 阅读 · 0 评论 -
347,前k个高频元素
请你返回其中出现频率前。原创 2024-03-29 15:13:31 · 224 阅读 · 0 评论 -
1047. 删除字符串中的所有相邻重复项
给出由小写字母组成的字符串 S,重复项删除操作会选择两个相邻且相同的字母,并删除它们。在完成所有重复项删除操作后返回最终的字符串。在 S 上反复执行重复项删除操作,直到无法继续删除。原创 2024-03-26 00:50:02 · 173 阅读 · 0 评论 -
20 有效的括号
给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。原创 2024-03-24 00:15:38 · 309 阅读 · 0 评论 -
225. 用队列实现栈
【代码】225. 用队列实现栈。原创 2024-03-22 00:31:41 · 146 阅读 · 0 评论 -
232.用栈实现队列
push(x) -- 将一个元素放入队列的尾部。peek() -- 返回队列首部的元素。empty() -- 返回队列是否为空。pop() -- 从队列首部移除元素。原创 2024-03-22 00:04:53 · 248 阅读 · 0 评论 -
151,反转的单词
中可能会存在前导空格、尾随空格或者单词间的多个空格。返回的结果字符串中,单词间应当仅用单个空格分隔,且不包含任何额外的空格。如果两个单词间有多余的空格,反转后的字符串需要将单词间的空格减少到仅有一个。反转后的字符串中不能存在前导空格和尾随空格。中使用至少一个空格将字符串中的。之间用单个空格连接的结果字符串。是由非空格字符组成的字符串。原创 2024-03-19 23:45:43 · 487 阅读 · 0 评论 -
替换数字
给定一个字符串 s,它包含小写字母和数字字符,请编写一个函数,将字符串中的字母字符保持不变,而将每个数字字符替换为number。例如,对于输入字符串 "a1b2c3",函数应该将其转换为 "anumberbnumbercnumber"。打印一个新的字符串,其中每个数字字符都被替换为了number。输入一个字符串 s,s 仅包含小写字母和数字字符。原创 2024-03-18 23:29:31 · 784 阅读 · 0 评论 -
541. 反转字符串II
给定一个字符串 s 和一个整数 k,从字符串开头算起, 每计数至 2k 个字符,就反转这 2k 个字符中的前 k 个字符。如果剩余字符小于 2k 但大于或等于 k 个,则反转前 k 个字符,其余字符保持原样。如果剩余字符少于 k 个,则将剩余字符全部反转。输入: s = "abcdefg", k = 2。输出: "bacdfeg"原创 2024-03-17 00:49:42 · 390 阅读 · 0 评论 -
344.反转字符串
不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。输出:["h","a","n","n","a","H"]输入:["H","a","n","n","a","h"]输入:["h","e","l","l","o"]输出:["o","l","l","e","h"]原创 2024-03-16 00:24:38 · 357 阅读 · 0 评论 -
第18题. 四数之和
题意:给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断 nums 中是否存在四个元素 a,b,c 和 d ,使得 a + b + c + d 的值与 target 相等?找出所有满足条件且不重复的四元组。示例: 给定数组 nums = [1, 0, -1, 0, -2, 2],和 target = 0。满足要求的四元组集合为: [ [-1, 0, 0, 1], [-2, -1, 1, 2], [-2, 0, 0, 2] ]答案中不可以包含重复的四元组。原创 2024-03-14 23:49:11 · 330 阅读 · 0 评论 -
第15题. 三数之和
给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0?请你找出所有满足条件且不重复的三元组。满足要求的三元组集合为: [ [-1, 0, 1], [-1, -1, 2] ]给定数组 nums = [-1, 0, 1, 2, -1, -4],答案中不可以包含重复的三元组。原创 2024-03-13 00:09:30 · 438 阅读 · 0 评论 -
第454题.四数相加II
为了使问题简单化,所有的 A, B, C, D 具有相同的长度 N,且 0 ≤ N ≤ 500。所有整数的范围在 -2^28 到 2^28 - 1 之间,最终结果不会超过 2^31 - 1。给定四个包含整数的数组列表 A , B , C , D ,计算有多少个元组 (i, j, k, l) ,使得 A[i] + B[j] + C[k] + D[l] = 0。利用map将时间复杂度从O(n^4)降到O(n^2)map不具有随机访问功能。原创 2024-03-11 23:19:31 · 662 阅读 · 0 评论 -
1. 两数之和
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。给定 nums = [2, 7, 11, 15], target = 9。因为 nums[0] + nums[1] = 2 + 7 = 9。所以返回 [0, 1]原创 2024-03-11 00:11:59 · 561 阅读 · 0 评论 -
第202题. 快乐数
快乐数」定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。如果 可以变为 1,那么这个数就是快乐数。如果 n 是快乐数就返回 True;不是,则返回 False。编写一个算法来判断一个数 n 是不是快乐数。原创 2024-03-10 00:49:57 · 389 阅读 · 0 评论 -
349. 两个数组的交集
输出结果中的每个元素一定是唯一的。我们可以不考虑输出结果的顺序。题意:给定两个数组,编写一个函数来计算它们的交集。对于看某个元素是否在另一个集合中的 ,考虑哈希。原创 2024-03-10 00:29:01 · 383 阅读 · 0 评论 -
242.有效的字母异位词
示例 1: 输入: s = "anagram", t = "nagaram" 输出: true。给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。示例 2: 输入: s = "rat", t = "car" 输出: false。你可以假设字符串只包含小写字母。原创 2024-03-09 00:43:08 · 356 阅读 · 0 评论