随笔分类 - 算法
摘要:39. 组合总和 题目链接:39. 组合总和 - 力扣(LeetCode) 思路 既然题目说可以数组中的数可以无限制重复被选取,那么说明在选取该元素的下一个分支也可以继续使用。 选取和剪枝过程如图: 注意:为什么取了2以后,剩余元素为5,3。因为如果剩余元素为2,5,3的话在后续操作中会出现重复值的
阅读全文
摘要:216.组合总和III 题目链接:216. 组合总和 III - 力扣(LeetCode) 思路 本题思路与 77.组合 差不多,加个限制条件即可解决。 选取过程如图: 代码 1 class Solution { 2 List<List<Integer>> result = new ArrayLis
阅读全文
摘要:回溯算法理论基础 回溯法也可以叫做回溯搜索法,它是一种搜索的方式。回溯法通常使用递归来实现,在递归过程中不断尝试各种可能的解决方案,如果发现当前的解决方案不可行,就回溯到上一步,换一种方案继续尝试。 回溯的本质是穷举,穷举所有可能,然后选出我们想要的答案,如果想让回溯法高效一些,可以加一些剪枝的操作
阅读全文
摘要:kmp算法理论基础知识 核心思想 利用已经部分匹配的结果而加快模式串的滑动速度! 且主串S的指针i不必回溯!相较于BF算法的O(N * M),KMP算法时间复杂度可提速到O(N + M)! 用处 KMP主要应用在字符串匹配上。 KMP的主要思想是当出现字符串不匹配时,可以知道一部分之前已经匹配的文本
阅读全文
摘要:669. 修剪二叉搜索树 题目链接:669. 修剪二叉搜索树 - 力扣(LeetCode) 思路 在 删除二叉搜索树中节点值为key的节点 这一题中,分五种情况来考虑,找到节点后删除即可。 而这道题是要求删除所有不在[low, high]之间的节点。 最简单的方法,遍历所有节点,如果不在low, h
阅读全文
摘要:110.平衡二叉树 题目链接:110. 平衡二叉树 - 力扣(LeetCode) 题目 给定一个二叉树,判断它是否是高度平衡的二叉树。 本题中,一棵高度平衡二叉树定义为: 一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 。 示例 1: 输入:root = [3,9,20,null,nu
阅读全文
摘要:235. 二叉搜索树的最近公共祖先 题目链接:235. 二叉搜索树的最近公共祖先 - 力扣(LeetCode) 思路 本题可以利用二叉搜索树 有序 的特性。 在有序树里,如果判断一个节点的左子树里有p,右子树里有q呢? 因为是有序树,所有 如果 中间节点是 q 和 p 的公共祖先,那么 中节点的数组
阅读全文
摘要:530.二叉搜索树的最小绝对差 题目链接:530. 二叉搜索树的最小绝对差 - 力扣(LeetCode) 思路 题目中要求在二叉搜索树上任意两节点的差的绝对值的最小值。 注意是二叉搜索树,二叉搜索树可是有序的。 遇到在二叉搜索树上求什么最值啊,差值之类的,就把它想成在一个有序数组上求最值,求差值,这
阅读全文
摘要:654.最大二叉树 题目链接:654. 最大二叉树 - 力扣(LeetCode) 题目 给定一个不重复的整数数组 nums 。 最大二叉树 可以用下面的算法从 nums 递归地构建: 创建一个根节点,其值为 nums 中的最大值。递归地在最大值 左边 的 子数组前缀上 构建左子树。递归地在最大值 右
阅读全文
摘要:513.找树左下角的值 题目链接:513. 找树左下角的值 - 力扣(LeetCode) 题目 给定一个二叉树的 根节点 root,请找出该二叉树的 最底层 最左边 节点的值。 假设二叉树中至少有一个节点。 示例 1: 输入: root = [2,1,3] 输出: 1 示例 2: 输入: [1,2,
阅读全文
摘要:104.二叉树的最大深度 题目链接 : 104. 二叉树的最大深度 - 力扣(LeetCode) 题目 给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 示例:给定二叉树 [3,9,20,null,null,15,7]
阅读全文
摘要:102.二叉树层序遍历 题目链接:102. 二叉树的层序遍历 - 力扣(LeetCode) 题目 给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。 示例 1: 输入:root = [3,9,20,null,null,15,7] 输出:[[3],[9,
阅读全文
摘要:理论基础 1、二叉树的种类 满二叉树:如果一棵二叉树只有度为0的结点和度为2的结点,并且度为0的结点在同一层上,则这棵二叉树为满二叉树。 这棵二叉树为满二叉树,也可以说深度为k,有2^k-1个节点的二叉树。 完全二叉树:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下
阅读全文
摘要:239. 滑动窗口最大值 题目链接:239. 滑动窗口最大值 - 力扣(LeetCode) 题目 给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回 滑动窗口中的最大值 。 示例 1:
阅读全文

浙公网安备 33010602011771号