
leetcode
leetcode刷题
lilllll0099
这个作者很懒,什么都没留下…
展开
-
leetcode1038.从二叉搜索树到更大和树
题目描述给出二叉搜索树的根节点,该二叉树的节点值各不相同,修改二叉树,使每个节点 node 的新值等于原树中大于或等于 node.val 的值之和。提醒一下,二叉搜索树满足下列约束条件:节点的左子树仅包含键小于节点键的节点。节点的右子树仅包含键大于节点键的节点。左右子树也必须是二叉搜索树。示例:输入:[4,1,6,0,2,5,7,null,null,null,3,null,null...原创 2020-02-07 09:53:56 · 491 阅读 · 1 评论 -
leetcode720.词典中最长的单词
题目描述给出一个字符串数组words组成的一本英语词典。从中找出最长的一个单词,该单词是由words词典中其他单词逐步添加一个字母组成。若其中有多个可行的答案,则返回答案中字典序最小的单词。若无答案,则返回空字符串。示例 1:输入:words = [“w”,“wo”,“wor”,“worl”, “world”]输出: “world”解释:单词"world"可由"w", “wo”, ...原创 2020-02-06 13:42:56 · 367 阅读 · 0 评论 -
leetcode997.找到小镇的法官
题目描述在一个小镇里,按从 1 到 N 标记了 N 个人。传言称,这些人中有一个是小镇上的秘密法官。如果小镇的法官真的存在,那么:小镇的法官不相信任何人。每个人(除了小镇法官外)都信任小镇的法官。只有一个人同时满足属性 1 和属性 2 。给定数组 trust,该数组由信任对 trust[i] = [a, b] 组成,表示标记为 a 的人信任标记为 b 的人。如果小镇存在秘密法官并且...原创 2020-02-04 11:03:22 · 315 阅读 · 0 评论 -
leetcode994.腐烂的橘子
题目描述在给定的网格中,每个单元格可以有以下三个值之一:值 0 代表空单元格;值 1 代表新鲜橘子;值 2 代表腐烂的橘子。每分钟,任何与腐烂的橘子(在 4 个正方向上)相邻的新鲜橘子都会腐烂。返回直到单元格中没有新鲜橘子为止所必须经过的最小分钟数。如果不可能,返回 -1。提示:1 <= grid.length <= 101 <= grid[0].lengt...原创 2020-02-03 14:14:09 · 384 阅读 · 0 评论 -
leetcode101.对称二叉树
题目描述给定一个二叉树,检查它是否是镜像对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。 1/ 2 2/ \ / 3 4 4 3但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的: 1/ 2 2\ 3 3说明:如果你可以运用递归和迭代两种方法解决这个问题,会很加分。来源:力扣(LeetCo...原创 2020-02-02 09:56:34 · 341 阅读 · 1 评论 -
leetcode690.员工的重要性
题目描述给定一个保存员工信息的数据结构,它包含了员工唯一的id,重要度 和 直系下属的id。比如,员工1是员工2的领导,员工2是员工3的领导。他们相应的重要度为15, 10, 5。那么员工1的数据结构是[1, 15, [2]],员工2的数据结构是[2, 10, [3]],员工3的数据结构是[3, 5, []]。注意虽然员工3也是员工1的一个下属,但是由于并不是直系下属,因此没有体现在员工1的数...原创 2020-02-01 12:22:09 · 253 阅读 · 0 评论 -
637.二叉树的层平均数
题目描述给定一个非空二叉树, 返回一个由每层节点平均值组成的数组.示例 1:输入:3/ 9 20/ 15 7输出: [3, 14.5, 11]解释:第0层的平均值是 3, 第1层是 14.5, 第2层是 11. 因此返回 [3, 14.5, 11].注意:节点值的范围在32位有符号整数范围内。来源:力扣(LeetCode)链接:https://leetco...原创 2020-01-31 13:54:36 · 205 阅读 · 1 评论 -
leetcode572.另一个树的子树
题目描述给定两个非空二叉树 s 和 t,检验 s 中是否包含和 t 具有相同结构和节点值的子树。s 的一个子树包括 s 的一个节点和这个节点的所有子孙。s 也可以看做它自身的一棵子树。示例 1:给定的树 s: 3/ \4 5/ 1 2给定的树 t:4/ 1 2返回 true,因为 t 与 s 的一个子树拥有相同的结构和节点值。来源:力扣(LeetCode)...原创 2020-01-29 11:45:02 · 177 阅读 · 0 评论 -
leetcode590.N叉树的后序遍历
题目描述给定一个 N 叉树,返回其节点值的后序遍历。例如,给定一个 3叉树 :返回其后序遍历: [5,6,3,2,4,1].来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/n-ary-tree-postorder-traversal解法1:递归这种解法比较简单。对于每一个节点都优先遍历它的子节点,最后遍历根节点。/*// D...原创 2020-01-28 15:17:26 · 210 阅读 · 0 评论 -
671.二叉树中第二小的节点
题目描述给定一个非空特殊的二叉树,每个节点都是正数,并且每个节点的子节点数量只能为 2 或 0。如果一个节点有两个子节点的话,那么这个节点的值不大于它的子节点的值。给出这样的一个二叉树,你需要输出所有节点中的第二小的值。如果第二小的值不存在的话,输出 -1 。示例 1:输入:2/ 2 5/ 5 7输出: 5说明: 最小的值是 2 ,第二小的值是 5 。来源:力扣(L...原创 2020-01-27 11:21:14 · 209 阅读 · 0 评论 -
559.N叉树的最大深度
题目描述给定一个 N 叉树,找到其最大深度。最大深度是指从根节点到最远叶子节点的最长路径上的节点总数。说明:树的深度不会超过 1000。树的节点总不会超过 5000。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/maximum-depth-of-n-ary-tree解法采用递归的方法,将根节点所有的子节点引伸的最大深度放入...原创 2020-01-26 11:52:50 · 214 阅读 · 0 评论 -
leetcode993.二叉树的堂兄弟节点
题目描述在二叉树中,根节点位于深度 0 处,每个深度为 k 的节点的子节点位于深度 k+1 处。如果二叉树的两个节点深度相同,但父节点不同,则它们是一对堂兄弟节点。我们给出了具有唯一值的二叉树的根节点 root,以及树中两个不同节点的值 x 和 y。只有与值 x 和 y 对应的节点是堂兄弟节点时,才返回 true。否则,返回 false。示例 1:输入:root = [1,2,3,4]...原创 2020-01-25 15:25:52 · 270 阅读 · 1 评论 -
leetcode653.两数之和
题目描述给定一个二叉搜索树和一个目标结果,如果 BST 中存在两个元素且它们的和等于给定的目标结果,则返回 true。案例 1:输入:5/ 3 6/ \ 2 4 7Target = 9输出: True来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/two-sum-iv-input-is-a-bst解法...原创 2020-01-24 10:46:32 · 187 阅读 · 0 评论 -
leetcode872.叶子相似的树
题目描述请考虑一颗二叉树上所有的叶子,这些叶子的值按从左到右的顺序排列形成一个 叶值序列 。举个例子,如上图所示,给定一颗叶值序列为 (6, 7, 4, 9, 8) 的树。如果有两颗二叉树的叶值序列是相同,那么我们就认为它们是 叶相似 的。如果给定的两个头结点分别为 root1 和 root2 的树是叶相似的,则返回 true;否则返回 false 。提示:给定的两颗树可能会有 1 到...原创 2020-01-23 15:32:11 · 214 阅读 · 0 评论 -
501.二叉搜索树中的众数
题目描述假定 BST 有如下定义:结点左子树中所含结点的值小于等于当前结点的值结点右子树中所含结点的值大于等于当前结点的值左子树和右子树都是二叉搜索树例如:给定 BST [1,null,2,2],12/2返回[2].提示:如果众数超过1个,不需考虑输出顺序进阶:你可以不使用额外的空间吗?(假设由递归产生的隐式调用栈的开销不被计算在内)来源:力扣(LeetCode)...原创 2020-01-22 17:47:23 · 204 阅读 · 0 评论 -
leetcode606.根据二叉树创建字符串
题目描述你需要采用前序遍历的方式,将一个二叉树转换成一个由括号和整数组成的字符串。空节点则用一对空括号 “()” 表示。而且你需要省略所有不影响字符串与原始二叉树之间的一对一映射关系的空括号对。示例 1:输入: 二叉树: [1,2,3,4]1/ 2 3/4输出: “1(2(4))(3)”解释: 原本将是“1(2(4)())(3())”,在你省略所有不必要的空括号...原创 2020-01-21 13:08:08 · 257 阅读 · 0 评论 -
leetcode897.递增顺序查找树
题目描述给定一个树,按中序遍历重新排列树,使树中最左边的结点现在是树的根,并且每个结点没有左子结点,只有一个右子结点。提示:给定树中的结点数介于 1 和 100 之间。每个结点都有一个从 0 到 1000 范围内的唯一整数值。解法1:中序遍历再重建树先按照中序遍历存储节点(较简单),再按照题目要求重新建树。代码如下:class Solution {public: vo...原创 2020-01-20 13:01:24 · 205 阅读 · 0 评论 -
leetcode1022.从根到叶的二进制数之和
题目描述给出一棵二叉树,其上每个结点的值都是 0 或 1 。每一条从根到叶的路径都代表一个从最高有效位开始的二进制数。例如,如果路径为 0 -> 1 -> 1 -> 0 -> 1,那么它表示二进制数 01101,也就是 13 。对树上的每一片叶子,我们都要找出从根到该叶子的路径所表示的数字。以 10^9 + 7 为模,返回这些数字之和。示例:输入:[1,0,1,0...原创 2020-01-19 12:06:04 · 206 阅读 · 0 评论 -
leetcode1046.最后一块石头的重量
题目描述有一堆石头,每块石头的重量都是正整数。每一回合,从中选出两块最重的石头,然后将它们一起粉碎。假设石头的重量分别为 x 和 y,且 x <= y。那么粉碎的可能结果如下:如果 x==y,那么两块石头都会被完全粉碎;如果 x != y,那么重量为 x 的石头将会完全粉碎,而重量为 y 的石头新重量为 y-x。最后,最多只会剩下一块石头。返回此石头的重量。如果没有石头剩下,就返回 0。...原创 2020-01-16 20:22:19 · 401 阅读 · 0 评论 -
leetcode703.数据流中的第k大元素(解法)
题目描述设计一个找到数据流中第K大元素的类(class)。注意是排序后的第K大元素,不是第K个不同的元素。你的 KthLargest 类需要一个同时接收整数 k 和整数数组nums 的构造器,它包含数据流中的初始元素。每次调用 KthLargest.add,返回当前数据流中第K大的元素。解法1:优先队列利用priority_queue这种数据结构。本题中为升序的优先队列,且初始化为有k个I...原创 2020-01-15 19:21:15 · 420 阅读 · 0 评论 -
Leetcode530.二叉搜索树的最小绝对差
题目给定一个所有节点为非负值的二叉搜索树,求树中任意两节点的差的绝对值的最小值。解题思路二叉搜索树的特点是:左节点小于根节点值,右节点大于根节点的值。所以最小绝对差存在于某个根节点和它的左节点或右节点之间。可以先用中序遍历将节点值存在一个数组中,比较数组中相邻两数差的最小值。代码如下:TreeNode.h#pragma once#include<iostream>#in...原创 2019-12-12 19:30:16 · 157 阅读 · 0 评论 -
leetcode1122.数组的相对排序
这道题思路比较简单,先对于每个数组2中的元素遍历数组1,如果遇到相同的,就直接放入result数组。再对于每个数组1中的元素遍历数组2,如果在数组2中没有找到,就存入一个暂时数组temp,再对temp数组进行一下排序,把排序后的temp数组中的数加入result数组。代码如下:#include<iostream>#include<vector>#include<...原创 2019-11-08 21:59:15 · 234 阅读 · 0 评论 -
349leetcode两个数组的交集
编程小白用时一小时,终于解出来了,哈哈哈哈#include<iostream>#include<vector>#include <algorithm>using namespace std;void bubble(vector<int>& arr, int count){ for (int i = 0; i < count...原创 2019-11-08 20:41:18 · 162 阅读 · 0 评论