
LeetCode刷题
文章平均质量分 92
力扣
花木凋零成兰
慢慢走
展开
-
LC 24. 两两交换链表中的节点
给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。原创 2024-04-29 23:46:55 · 453 阅读 · 0 评论 -
LC 1047.删除字符串中的所有相邻重复项
给出由小写字母组成的字符串S会选择两个相邻且相同的字母,并删除它们。在 S 上反复执行重复项删除操作,直到无法继续删除。在完成所有重复项删除操作后返回最终的字符串。答案保证唯一。“abbaca”“ca”例如,在 “abbaca” 中,我们可以删除 “bb” 由于两字母相邻且相同,这是此时唯一可以执行删除操作的重复项。之后我们得到字符串 “aaca”,其中又只有 “aa” 可以执行重复项删除操作,所以最后的字符串为 “ca”。原创 2024-04-29 23:44:23 · 937 阅读 · 0 评论 -
LC 142. 环形链表 II
给定一个链表的头节点head,返回链表开始入环的第一个节点。如果链表无环,则返回null。如果链表中有某个节点,可以通过连续跟踪next指针再次到达,则链表中存在环。为了表示给定链表中的环,评测系统内部使用整数pos来表示链表尾连接到链表中的位置(如果pos是-1,则在该链表中没有环。pos,仅仅是为了标识链表的实际情况。链表。返回索引为 1 的链表节点链表中有一个环,其尾部连接到第二个节点。返回索引为 0 的链表节点链表中有一个环,其尾部连接到第一个节点。返回 null链表中没有环。0104。原创 2024-04-28 09:16:39 · 1186 阅读 · 0 评论 -
LC 202.快乐数
编写一个算法来判断一个数n是不是快乐数。如果n是快乐数就返回true;不是,则返回false。原创 2024-04-26 19:16:12 · 1017 阅读 · 0 评论 -
LC 151. 反转字符串中的单词
给你一个字符串s,请你反转字符串中的顺序。是由非空格字符组成的字符串。s中使用至少一个空格将字符串中的分隔开。返回顺序颠倒且之间用单个空格连接的结果字符串。输入字符串s中可能会存在前导空格、尾随空格或者单词间的多个空格。返回的结果字符串中,单词间应当仅用单个空格分隔,且不包含任何额外的空格。s =s =反转后的字符串中不能存在前导空格和尾随空格。如果两个单词间有多余的空格,反转后的字符串需要将单词间的空格减少到仅有一个。原创 2024-04-24 22:13:28 · 1152 阅读 · 0 评论 -
LC 239.滑动窗口最大值
给你一个整数数组nums,有一个大小为k的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的k个数字。滑动窗口每次只向右移动一位。返回滑动窗口中的最大值。滑动窗口的位置 最大值[1]1≤numslength≤105−104≤numsi≤1041≤k≤numslength。原创 2024-04-24 22:16:42 · 980 阅读 · 1 评论 -
LC 541.反转字符串 II
给定一个字符串s和一个整数k,从字符串开头算起,每计数至2k个字符,就反转这2k字符中的前k个字符。原创 2024-04-23 21:35:22 · 1202 阅读 · 0 评论 -
LC 344.反转字符串
编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组s的形式给出。不要给另外的数组分配额外的空间,你必须修改输入数组 、使用 O(1) 的额外空间解决这一问题。原创 2024-04-23 14:30:51 · 966 阅读 · 0 评论 -
LC 704.二分查找
给定一个n个元素有序的(升序)整型数组nums和一个目标值target,写一个函数搜索nums中的target,如果目标值存在返回下标,否则返回-1。原创 2024-04-18 21:25:26 · 476 阅读 · 0 评论 -
LC 1.两数之和
给定一个整数数组nums和一个整数目标值target,请你在该数组中找出target的那整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。原创 2024-04-18 08:07:11 · 743 阅读 · 0 评论 -
LC 150.逆波兰表达式
给你一个字符串数组tokens,表示一个根据表示的算术表达式。请你计算该表达式。返回一个表示表达式值的整数。'+''-''*''/'9该算式转化为常见的中缀算术表达式为:((2 + 1) * 3) = 96该算式转化为常见的中缀算术表达式为:(4 + (13 / 5)) = 6“,”/“,”22该算式转化为常见的中缀算术表达式为:= 17 + 5= 221≤tokenslength≤104tokens[i]"+""-""*""/"原创 2024-04-17 23:24:53 · 1026 阅读 · 0 评论 -
LC 438.找到字符串中所有字母异位词
给定两个字符串s和p,找到s中所有p的的子串,返回这些子串的起始索引。不考虑答案输出的顺序。指由相同字母重排列形成的字符串(包括相同的字符串)。[0,6]起始索引等于 0 的子串是 “cba”, 它是 “abc” 的异位词。起始索引等于 6 的子串是 “bac”, 它是 “abc” 的异位词。[0,1,2]起始索引等于 0 的子串是 “ab”, 它是 “ab” 的异位词。起始索引等于 1 的子串是 “ba”, 它是 “ab” 的异位词。原创 2024-04-17 08:09:08 · 962 阅读 · 0 评论 -
LC 206.反转链表
链表可以选用迭代或递归方式完成反转。你能否用两种方法解决这道题?,请你反转链表,并返回反转后的链表。原创 2024-04-16 20:39:36 · 419 阅读 · 0 评论 -
LC 459.重复的子字符串
给定一个非空的字符串s,检查是否可以通过由它的一个子串重复多次构成。s = “abab”true可由子串 “ab” 重复两次构成。s = “aba”falsetrue可由子串 “abc” 重复四次构成。(或子串 “abcabc” 重复两次构成。原创 2024-04-16 07:46:32 · 994 阅读 · 0 评论 -
LC 738.单调递增的数字
当且仅当每个相邻位数上的数字x和y满足x≤y时,我们称这个整数是的。给定一个整数n,返回小于或等于n的最大数字,且数字呈。原创 2024-04-15 19:10:56 · 669 阅读 · 0 评论 -
LC 76.最小覆盖子串
给你一个字符串s、一个字符串t。返回s中涵盖t所有字符的最小子串。如果s中不存在涵盖t所有字符的子串,则返回空字符串""。ttst**进阶:**你能设计一个在o(m+n)时间内解决此问题的算法吗?原创 2024-04-14 15:28:25 · 1015 阅读 · 0 评论 -
LC 70.爬楼梯
假设你正在爬楼梯。需要n阶你才能到达楼顶。每次你可以爬1或2个台阶。你有多少种不同的方法可以爬到楼顶呢?n = 22有两种方法可以爬到楼顶。n = 33有三种方法可以爬到楼顶。1≤n≤45。原创 2024-04-14 11:03:18 · 1015 阅读 · 0 评论 -
LC 53.最大子数组和
给你一个整数数组nums,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。是数组中的一个连续部分。6连续子数组 [4,-1,2,1] 的和最大,为 6。nums = [1]1231≤numslength≤105−104≤numsi≤104如果你已经实现复杂度为O(n)的解法,尝试使用更为精妙的求解。原创 2024-04-13 14:23:59 · 879 阅读 · 0 评论 -
LC 45.跳跃游戏II
给定一个长度为n的整数数组nums。初始位置为nums[0]。每个元素nums[i]表示从索引i向前跳转的最大长度。换句话说,如果你在nums[i]处,你可以跳转到任意返回到达的最小跳跃次数。生成的测试用例可以到达。2跳到最后一个位置的最小跳跃数是2。从下标为 0 跳到下标为 1 的位置,跳1步,然后跳3步到达数组的最后一个位置。原创 2024-04-13 13:16:38 · 1114 阅读 · 0 评论 -
LC 515.在每个树行中找最大值
给定一棵二叉树的根节点root,请找出该二叉树中每一层的最大值。原创 2024-04-12 19:32:34 · 1893 阅读 · 0 评论 -
LC 513.找树左下角的值
给定一个二叉树的root,请找出该二叉树的节点的值。假设二叉树中至少有一个节点。原创 2024-04-12 09:41:49 · 1004 阅读 · 0 评论 -
LC 501.二叉搜索树中的众数
给你一个含重复值的二叉搜索树(BST)的根节点root,找出并返回 BST 中的所有(即,出现频率最高的元素)。如果树中有不止一个众数,可以按返回。[2]root = [0][0]1104−105≤Nodeval≤105你可以不使用额外的空间吗?(假设由递归产生的隐式调用栈的开销不被计算在内)原创 2024-04-11 21:01:04 · 2335 阅读 · 0 评论 -
LC 450.删除二叉搜索树中的节点
给定一个二叉搜索树的根节点和一个值,删除二叉搜索树中的对应的节点,并保证二叉搜索树的性质不变。返回二叉搜索树(有可能被更新)的根节点的引用。给定需要删除的节点值是 3,所以我们首先找到 3 这个节点,然后删除它。一个正确的答案是 [5,4,6,2,null,null,7], 如下图所示。另一个正确答案是 [5,2,6,null,4,null,7]。二叉树不包含值为 0 的节点[]0104−105≤Nodeval≤105root−105≤key≤。原创 2024-04-11 12:52:02 · 957 阅读 · 0 评论 -
LC 572.另一棵树的子树
给你两棵二叉树root和subRoot。检验root中是否包含和subRoot具有相同结构和节点值的子树。如果存在,返回true;否则,返回false。二叉树tree的一棵子树包括tree的某个节点和这个节点的所有后代节点。tree也可以看做它自身的一棵子树。原创 2024-04-10 20:11:35 · 1011 阅读 · 0 评论 -
LC 429.N叉树的层序遍历
给定一个 N 叉树,返回其节点值的层序遍历。(即从左到右,逐层遍历)。树的序列化输入是用层序遍历,每组子节点都由 null 值分隔(参见示例)。10000104。原创 2024-04-10 09:28:00 · 817 阅读 · 0 评论 -
LC 117.填充每个节点的下一个右侧节点指针II
给定一个二叉树:int val;Node *left;Node *next;填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为NULL。初始状态下,所有 next 指针都被设置为NULL。给定二叉树如图 A 所示,你的函数应该填充它的每个 next 指针,以指向其下一个右侧节点,如图 B 所示。序列化输出按层序遍历顺序(由 next 指针连接),‘#’ 表示每层的末尾。原创 2024-04-09 13:42:01 · 1011 阅读 · 0 评论 -
LC 116.填充每个节点的下一个右侧节点指针
给定一个,其所有叶子节点都在同一层,每个父节点都有两个子节点。二叉树定义如下:int val;Node *left;Node *next;填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为NULL。初始状态下,所有 next 指针都被设置为NULL。给定二叉树如图 A 所示,你的函数应该填充它的每个 next 指针,以指向其下一个右侧节点,如图 B 所示。原创 2024-04-09 08:42:06 · 1088 阅读 · 0 评论 -
LC 404.左叶子之和
给定二叉树的根节点root,返回所有左叶子之和。24在这个二叉树中,有两个左叶子,分别是 9 和 15,所以返回 24root = [1]0[1, 1000]−1000≤Nodeval≤1000。原创 2024-04-08 12:41:54 · 1200 阅读 · 0 评论 -
LC 257.二叉树的所有路径
给你一个二叉树的根节点root,按,返回所有从根节点到叶子节点的路径。是指没有子节点的节点。原创 2024-04-08 08:51:40 · 893 阅读 · 0 评论 -
LC 236.二叉树的最近公共祖先
给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(3节点5和节点1的最近公共祖先是节点3。5节点5和节点4的最近公共祖先是节点5。因为根据定义最近公共祖先节点可以为节点本身。12105−109≤Nodeval≤109Node.val互不相同p!= qpq。原创 2024-04-07 13:51:18 · 1086 阅读 · 0 评论 -
LC 235.二叉搜索树的最近公共祖先
给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(例如,给定如下二叉搜索树: root = [6,2,8,0,4,7,9,null,null,3,5]6节点2和节点8的最近公共祖先是6。2节点2和节点4的最近公共祖先是2, 因为根据定义最近公共祖先节点可以为节点本身。原创 2024-04-07 11:01:50 · 1022 阅读 · 0 评论 -
LC 96.不同的二叉搜索树
给你一个整数n,求恰由n个节点组成且节点值从1到n互不相同的有多少种?返回满足题意的二叉搜索树的种数。原创 2024-04-05 13:26:22 · 1050 阅读 · 0 评论 -
LC 226.翻转二叉树
给你一棵二叉树的根节点root,翻转这棵二叉树,并返回其根节点。原创 2024-04-06 13:25:25 · 1054 阅读 · 0 评论 -
LC 222.完全二叉树的节点个数
给你一棵的根节点root,求出该树的节点个数。的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若最底层为第h层,则该层包含1∼2h个节点。6root = []0root = [1]105×1040≤Nodeval≤5∗104遍历树来统计节点是一种时间复杂度为O(n)的简单解决方案。你可以设计一个更快的算法吗?原创 2024-04-06 10:52:47 · 767 阅读 · 1 评论 -
LC 199.二叉树的右视图
给定一个二叉树的root,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。原创 2024-04-05 10:37:21 · 972 阅读 · 0 评论 -
LC 145.二叉树的后序遍历
给你一棵二叉树的根节点root,返回其节点值的。[3,2,1]root = [][]root = [1][1][0, 100]−100≤Nodeval≤100递归算法很简单,你可以通过迭代算法完成吗?原创 2024-04-04 16:09:00 · 1135 阅读 · 0 评论 -
LC 144.二叉树的前序遍历
给你二叉树的根节点root,返回它节点值的遍历。[1,2,3]root = [][]root = [1][1][1,2][1,2][0, 100]−100≤Nodeval≤100递归算法很简单,你可以通过迭代算法完成吗?原创 2024-04-04 13:38:25 · 975 阅读 · 0 评论 -
LC 111.二叉树的最小深度
给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。叶子节点是指没有子节点的节点。原创 2024-04-03 12:33:30 · 1071 阅读 · 0 评论 -
LC 110.平衡二叉树
给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点的左右两个子树的高度差的绝对值不超过 1。原创 2024-04-03 09:06:11 · 725 阅读 · 0 评论 -
LC 108.将有序数组转换为二叉搜索树
给你一个整数数组nums,其中元素已经按排列,请你将其转换为一棵二叉搜索树。二叉树是一棵满足「每个节点的左右两个子树的高度差的绝对值不超过 1 」的二叉树。[3,1][1,null,3] 和 [3,1] 都是高度平衡二叉搜索树。原创 2024-04-02 09:09:25 · 1257 阅读 · 0 评论