01 2020 档案
摘要:链接: "LeetCode662" 给定一个二叉树,编写一个函数来获取这个树的最大宽度。树的宽度是所有层中的最大宽度。这个二叉树与满二叉树(full binary tree)结构相同,但一些节点为空。 每一层的宽度被定义为两个端点(该层最左和最右的非空节点,两端点间的null节点也计入长度)之间的长
阅读全文
摘要:链接: "LeetCode659" 输入一个按升序排序的整数数组(可能包含重复数字),你需要将它们分割成几个子序列,其中每个子序列至少包含三个连续整数。返回你是否能做出这样的分割? 示例 1: 输入: 输出: True 解释: 你可以分割出这样两个连续子序列 : 1,
阅读全文
摘要:链接: "LeetCode658" 给定一个排序好的数组,两个整数 k 和 x,从数组中找到最靠近 x(两数之差最小)的 k 个数。返回的结果必须要是按升序排好的。如果有两个数与 x 的差值一样,优先选择数值较小的那个数。 示例 1: 输入: 输出:
阅读全文
摘要:链接: "LeetCode654" 给定一个不含重复元素的整数数组。一个以此数组构建的最大二叉树定义如下: 二叉树的根是数组中的最大元素。 左子树是通过数组中最大值左边部分构造出的最大二叉树。 右子树是通过数组中最大值右边部分构造出的最大二叉树。 通过给定的数组构建最大二叉树,并且输出这个树的根节点
阅读全文
摘要:链接: "LeetCode653" 给定一个二叉搜索树和一个目标结果,如果 BST 中存在两个元素且它们的和等于给定的目标结果,则返回 true。 相关标签: 哈希表 类似于求两数之和,我们只需要在遍历二叉树过程中寻找是否存在有数为k 已经遍历到的数即可。 代码如下: python: C++:
阅读全文
摘要:链接: "LeetCode652" 给定一棵二叉树,返回所有重复的子树。对于同一类的重复子树,你只需要返回其中任意一棵的根结点即可。 两棵树重复是指它们具有相同的结构以及相同的结点值。 相关标签: 深度优先搜索 深度优先搜索加哈希表。由于在寻找重复子树过程中,我们需要记住每一步的结果,并且最终记录是
阅读全文
摘要:链接: "LeetCode650" 最初在一个记事本上只有一个字符 'A'。你每次可以对这个记事本进行两种操作: Copy All (复制全部) : 你可以复制这个记事本中的所有字符(部分的复制是不允许的)。 Paste (粘贴) : 你可以粘贴你上一次复制的字符。 给定一个数字 n 。你需要使用最
阅读全文
摘要:链接: "LeetCode648" 在英语中,有一个叫做 词根(root)的概念,它可以跟着其他一些词组成另一个较长的单词——我们称这个词为 继承词(successor)。例如,词根an,跟随着单词 other(其他),可以形成新的单词 another(另一个)。 现在,给定一个由许多词根组成的词典
阅读全文
摘要:链接: "LeetCode" [Leetcode]5319.删除回文子序列 给你一个字符串 s,它仅由字母 'a' 和 'b' 组成。每一次删除操作都可以从 s 中删除一个回文 子序列。返回删除给定字符串中所有字符(字符串为空)的最小删除次数。 注意这里,「子序列」定义:如果一个字符串可以通过删除原
阅读全文
摘要:所谓最短路径问题是指:如果从图中某一顶点(源点)到达另一顶点(终点)的路径可能不止一条,如何找到一条路径使得沿此路径上各边的权值总和(称为路径长度)达到最小。 下面我们介绍两种比较常用的求最短路径算法: Dijkstra(迪杰斯特拉)算法 迪杰斯特拉算法思想是按路径长度递增的次序一步一步并入来求取,
阅读全文
摘要:链接: "LeetCode647" 给定一个字符串,你的任务是计算这个字符串中有多少个回文子串。 具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被计为是不同的子串。 示例 1: 输入: "abc" 输出: 3 解释: 三个回文子串: "a", "b", "c". 示例 2: 输入:
阅读全文
摘要:链接: "LeetCode646" 给出 n 个数对。 在每一个数对中,第一个数字总是比第二个数字小。 现在,我们定义一种跟随关系,当且仅当 b [3,4]pairs[i][0] pai
阅读全文
摘要:链接: "LeetCode" 有时间也要刷一下周赛,这周难度偏低,解析如下: [Leetcode]1323. 6 和 9 组成的最大数字 给你一个仅由数字 6 和 9 组成的正整数 num。你最多只能翻转一位数字,将 6 变成 9,或者把 9 变成 6 。返回你可以得到的最大数字。 判断有没有6,和
阅读全文
摘要:链接: "LeetCode645" 集合包含从到的整数。不幸的是,因为数据错误,导致集合里面某一个元素复制了成了集合里面的另外一个元素的值,导致集合丢失了一个整数并且有一个元素重复。 给定一个数组代表了集合发生错误后的结果。你的任务是首先寻找到重复出现的整数,再找
阅读全文
摘要:链接: "LeetCode643" 给定个整数,找出平均数最大且长度为的连续子数组,并输出该最大平均数。 示例 1: 输入: , k = 4 输出: 12.75 解释: 最大平均数 (12 5 6+50)/4 = 51/4 = 12.75 相关标
阅读全文