12 2022 档案
摘要:多模块项目,引用其他模块,需要在pom文件里面依赖声明。 用RestFul风格进行调用。 同时需要搞一个RestFul的配置类,加载到Spring中去。
阅读全文
摘要:回溯算法理论基础: 回溯算法的本质是穷举,可以通过剪枝来优化回溯的效率。 回溯问题一般应用于: 组合问题、切割问题、子集问题、排列问题、棋盘问题 组合和排列的区别在于: 组合不强调元素顺序,排列强调元素的顺序。 回溯问题都可以抽象为树形结构,集合的大小和递归的深度构成树的宽度和深度。 回溯模板: 1
阅读全文
摘要:LeetCode 538.把二叉搜索树转化为累加树 给出二叉 搜索 树的根节点,该树的节点值各不相同,请你将其转换为累加树(Greater Sum Tree),使每个节点 node 的新值等于原树中大于或等于 node.val 的值之和。 提醒一下,二叉搜索树满足下列约束条件: 节点的左子树仅包含键
阅读全文
摘要:LeetCode108. 将有序数组转换成二叉搜索树 将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。 本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。 示例: 就像构造最大二叉树一样。我们可以取有序数组的中间节点作为根节点进行构造。如果存在两
阅读全文
摘要:LeetCode 669.修建二叉搜索树 给定一个二叉搜索树,同时给定最小边界L 和最大边界 R。通过修剪二叉搜索树,使得所有节点的值在[L, R]中 (R>=L) 。你可能需要改变树的根节点,所以结果应当返回修剪好的二叉搜索树的新的根节点。 思路: 这里剪枝操作,在剪完后需要重构树形结构,由于是二
阅读全文
摘要:LeetCode 450.删除二叉搜索树中的节点 给定一个二叉搜索树的根节点 root 和一个值 key,删除二叉搜索树中的 key 对应的节点,并保证二叉搜索树的性质不变。返回二叉搜索树(有可能被更新)的根节点的引用。 一般来说,删除节点可分为两个步骤: 首先找到需要删除的节点; 如果找到了,删除
阅读全文
摘要:LeetCode 701.二叉搜索树种的插入操作 给定二叉搜索树(BST)的根节点和要插入树中的值,将值插入二叉搜索树。 返回插入后二叉搜索树的根节点。 输入数据保证,新值和原始二叉搜索树中的任意节点值都不同。 注意,可能存在多种有效的插入方式,只要树在插入后仍保持为二叉搜索树即可。 你可以返回任意
阅读全文
摘要:LeetCode 235.二叉搜索树的最近公共祖先 给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。
阅读全文
摘要:LeetCode 236.二叉树的最近公共祖先 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。” 例如
阅读全文
摘要:LeetCode 501.二叉搜索树的众数 给定一个有相同值的二叉搜索树(BST),找出 BST 中的所有众数(出现频率最高的元素)。 假定 BST 有如下定义: 结点左子树中所含结点的值小于等于当前结点的值 结点右子树中所含结点的值大于等于当前结点的值 左子树和右子树都是二叉搜索树 例如: 给定
阅读全文
摘要:LeetCode530.二叉搜索树的最小绝对差 给你一棵所有节点为非负值的二叉搜索树,请你计算树中任意两节点的差的绝对值的最小值。 示例: 提示:树中至少有 2 个节点。 思路:由于是二叉搜索树,可以用中序遍历,把二叉树变成有序数组,进而问题转化为求有序数组的任意两节点的最小值。 既然是有序数组,那
阅读全文