自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(206)
  • 收藏
  • 关注

原创 LeetCode51:N皇后

每一种解法包含一个不同的 n 皇后问题 的棋子放置方案,该方案中 ‘Q’ 和 ‘.’ 分别代表了皇后和空位。n 皇后问题 研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。给你一个整数 n ,返回所有不同的 n 皇后问题 的解决方案。

2024-04-26 10:06:11 62

原创 LeetCode47:全排列②

给定一个可包含重复数字的序列 nums ,按任意顺序 返回所有不重复的全排列。因为存在去重操作,因此要注重树层上的去重操作。全排列的树层去重操作。

2024-04-25 11:07:55 127

原创 LeetCode46:全排列

给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列。你可以 按任意顺序 返回答案。使用used记录元素是否使用过,排列是有序的,要注意与组合的区别。

2024-04-25 10:18:52 112

原创 LeetCode491:非递减子序列

给你一个整数数组 nums ,找出并返回所有该数组中不同的递增子序列,递增子序列中 至少有两个元素。你可以按 任意顺序 返回答案。数组中可能含有重复元素,如出现两个整数相等,也可以视作递增序列的一种特殊情况。

2024-04-25 10:17:03 64

原创 LeetCode90:子集②

给你一个整数数组 nums ,其中可能包含重复元素,请你返回该数组所有可能的。解集 不能 包含重复的子集。返回的解集中,子集可以按 任意顺序 排列。

2024-04-24 09:31:02 128

原创 LeetCode78:子集

给你一个整数数组 nums ,数组中的元素 互不相同。返回该数组所有可能的。解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。

2024-04-24 09:01:51 213

原创 LeetCode93:复原IP地址

给定一个只包含数字的字符串 s ,用以表示一个 IP 地址,返回所有可能的有效 IP 地址,这些地址可以通过在 s 中插入 ‘.’ 来形成。你可以按 任何 顺序返回答案。例如:“0.1.2.201” 和 “192.168.1.1” 是 有效 IP 地址,但是 “0.011.255.245”、“192.168.1.312” 和 “[email protected]” 是 无效 IP 地址。有效 IP 地址 正好由四个整数(每个整数位于 0 到 255 之间组成,且不能含有前导 0),整数之间用 ‘.’ 分隔。

2024-04-23 10:49:09 230

原创 LeetCode131:分割回文串

给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是。返回 s 所有可能的分割方案。

2024-04-23 09:44:43 243

原创 LeetCode40:组合总和②

给定一个候选人编号的集合 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的每个数字在每个组合中只能使用 一次。使用回溯思想,可能会出现重复的,需要进行去重操作。注意:解集不能包含重复的组合。

2024-04-22 09:52:21 222

原创 LeetCode39:组合总和

给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 ,并以列表形式返回。你可以按 任意顺序 返回这些组合。如果至少一个数字的被选数量不同,则两种组合是不同的。上个代码对于sum已经大于target的情况,其实是依然进入了下一层递归,只是下一层递归结束判断的时候,会判断sum > target的话就返回。对于给定的输入,保证和为 target 的不同组合数少于 150 个。

2024-04-22 09:50:27 224

原创 LeetCode:电话号码的字母组合

给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。

2024-04-20 11:29:42 193

原创 LeetCode216:组合总和Ⅲ

返回 所有可能的有效组合的列表。该列表不能包含相同的组合两次,组合可以以任何顺序返回。每个数字 最多使用一次。

2024-04-20 10:44:25 251

原创 LeetCode77:组合

给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。你可以按 任何顺序 返回答案。

2024-04-19 10:13:21 133

原创 LeetCode538:把二叉搜索树转换为累加树

给出二叉 搜索 树的根节点,该树的节点值各不相同,请你将其转换为累加树(Greater Sum Tree),使每个节点 node 的新值等于原树中大于或等于 node.val 的值之和。节点的左子树仅包含键 小于 节点键的节点。节点的右子树仅包含键 大于 节点键的节点。左右子树也必须是二叉搜索树。使用右中左的遍历顺序。

2024-04-18 10:00:33 104

原创 LeetCode108:讲有序数组转换为平衡二叉搜索树

给你一个整数数组 nums ,其中元素已经按 升序 排列,请你将其转换为一棵。

2024-04-18 09:37:08 252

原创 LeetCode669:修剪二叉搜索树

给你二叉搜索树的根节点 root ,同时给定最小边界low 和最大边界 high。通过修剪二叉搜索树,使得所有节点的值在[low, high]中。修剪树 不应该 改变保留在树中的元素的相对结构 (即,如果没有被移除,原有的父代子代关系都应当保留)。可以证明,存在 唯一的答案。所以结果应当返回修剪好的二叉搜索树的新的根节点。注意,根节点可能会根据给定的边界发生改变。

2024-04-18 09:12:24 245

原创 LeetCode450:删除二叉搜索树中的节点

给定一个二叉搜索树的根节点 root 和一个值 key,删除二叉搜索树中的 key 对应的节点,并保证二叉搜索树的性质不变。返回二叉搜索树(有可能被更新)的根节点的引用。首先找到需要删除的节点;如果找到了,删除它。

2024-04-17 10:21:03 241

原创 LeetCode701:二叉搜索树中的插入操作

给定二叉搜索树(BST)的根节点 root 和要插入树中的值 value ,将值插入二叉搜索树。返回插入后二叉搜索树的根节点。输入数据 保证 ,新值和原始二叉搜索树中的任意节点值都不同。

2024-04-17 09:11:33 202

原创 LeetCode235:二叉搜索树的最近公共祖先

百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。例如,给定如下二叉搜索树: root = [6,2,8,0,4,7,9,null,null,3,5]给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。

2024-04-16 10:00:06 199

原创 LeetCode236:二叉树的最近公共祖先

百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。使用后序遍历和回溯的思想。

2024-04-16 09:26:29 346

原创 LeetCode501:二叉搜索树中的众数

给你一个含重复值的二叉搜索树(BST)的根节点 root ,找出并返回 BST 中的所有 众数(即,出现频率最高的元素)。如果树中有不止一个众数,可以按 任意顺序 返回。结点左子树中所含节点的值 小于等于 当前节点的值。结点右子树中所含节点的值 大于等于 当前节点的值。左子树和右子树都是二叉搜索树。

2024-04-15 09:48:11 153

原创 LeetCode530:二叉搜索树的最小绝对差

给你一个二叉搜索树的根节点 root ,返回 树中任意两不同节点值之间的最小差值。差值是一个正数,其数值等于两值之差的绝对值。使用双指针,不用开辟新的空间。

2024-04-15 08:42:31 110

原创 LeetCode700:验证二叉搜索树

给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。所有左子树和右子树自身必须也是二叉搜索树。节点的右子树只包含 大于 当前节点的数。只包含 小于 当前节点的数。使用中序遍历是有序的特性。

2024-04-13 10:08:17 152

原创 LeetCode700:二叉搜索树中的搜索

你需要在 BST 中找到节点值等于 val 的节点。返回以该节点为根的子树。如果节点不存在,则返回 null。给定二叉搜索树(BST)的根节点 root 和一个整数值 val。

2024-04-13 09:11:22 201

原创 LeetCode617:合并二叉树

想象一下,当你将其中一棵覆盖到另一棵之上时,两棵树上的一些节点将会重叠(而另一些不会)。你需要将这两棵树合并成一棵新二叉树。合并的规则是:如果两个节点重叠,那么将这两个节点的值相加作为合并后节点的新值;否则,不为 null 的节点将直接作为新二叉树的节点。给你两棵二叉树: root1 和 root2。注意: 合并过程必须从两个树的根节点开始。返回合并后的二叉树。

2024-04-12 09:34:46 248

原创 LeetCode654:最大二叉树

给定一个不重复的整数数组 nums。递归地在最大值 左边 的 子数组前缀上 构建左子树。递归地在最大值 右边 的 子数组后缀上 构建右子树。创建一个根节点,其值为 nums 中的最大值。返回 nums 构建的 最大二叉树。

2024-04-12 09:12:05 210

原创 LeetCode106:从中序与后序遍历序列构造二叉树

给定两个整数数组 inorder 和 postorder ,其中 inorder 是二叉树的中序遍历, postorder 是同一棵树的后序遍历,请你构造并返回这颗 二叉树。第四步:切割中序数组,切成中序左数组和中序右数组 (顺序别搞反了,一定是先切中序数组)第二步:如果不为空,那么取后序数组最后一个元素作为节点元素。第三步:找到后序数组最后一个元素在中序数组的位置,作为切割点。第五步:切割后序数组,切成后序左数组和后序右数组。第一步:如果数组大小为零的话,说明是空节点了。

2024-04-11 10:19:57 255

原创 LeetCode112:路径总和

给你二叉树的根节点 root 和一个表示目标和的整数 targetSum。判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum。如果存在,返回 true;否则,返回 false。叶子节点 是指没有子节点的节点。需要遍历所有的路径,不推荐。

2024-04-11 09:36:39 191

原创 LeetCode513:找树左下角的值

给定一个二叉树的 根节点 root,请找出该二叉树的 最底层 最左边 节点的值。假设二叉树中至少有一个节点。

2024-04-10 10:04:21 229

原创 LeetCode404:左叶子之和

给定二叉树的根节点 root ,返回所有左叶子之和。

2024-04-10 09:31:58 232

原创 LeetCode257:二叉树的所有路径

给你一个二叉树的根节点 root ,按 任意顺序 ,返回所有从根节点到叶子节点的路径。叶子节点 是指没有子节点的节点。

2024-04-09 20:49:30 175

原创 LeetCode110:平衡二叉树

使用递归依次计算左子树的高度和右子树的高度。给定一个二叉树,判断它是否是 平衡二叉树。

2024-04-09 19:57:53 135

原创 LeetCode222:完全二叉树节点的数量

完全二叉树 的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若最底层为第 h 层,则该层包含 1~ 2h 个节点。给你一棵 完全二叉树 的根节点 root ,求出该树的节点个数。使用常规二叉树的思想,直接遍历二叉树。使用完全二叉树的性质。

2024-04-02 20:39:38 259

原创 LeetCode111:二叉树的最小深度

最小深度是从根节点到最近叶子节点的最短路径上的节点数量。说明:叶子节点是指没有子节点的节点。给定一个二叉树,找出其最小深度。

2024-04-01 09:49:24 198

原创 LeetCode104:二叉树的最大深度

二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。使用递归:后序遍历,求高度。给定一个二叉树 root ,返回其最大深度。

2024-04-01 09:47:41 230

原创 LeetCode101:对称二叉树

给你一个二叉树的根节点 root , 检查它是否轴对称。

2024-03-31 16:01:00 242

原创 LeetCode226:反转二叉树

给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。使用前序遍历和后序遍历比较方便。

2024-03-31 14:45:39 361

原创 二叉树的迭代遍历

【代码】二叉树的迭代遍历。

2024-03-29 10:07:28 158

原创 二叉树的递归遍历

【代码】二叉树的递归遍历。

2024-03-27 11:37:02 88

原创 LeetCode239:滑动窗口最大值

给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。push(value):如果push的元素value大于入口元素的数值,那么就将队列入口的元素弹出,直到push元素的数值小于等于队列入口元素的数值为止。pop(value):如果窗口移除的元素value等于单调队列的出口元素,那么队列弹出元素,否则不用任何操作。输入:nums = [1,3,-1,-3,5,3,6,7], k = 3。输出:[3,3,5,5,6,7]

2024-03-26 09:45:56 230

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除