自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

坑人的小书童

前端工程师的杂货铺:这里有每天一道leetcode,不定期更新vue和react、flutter使用小技巧;不定期更新实际项目总结和规范,和前端进阶路线;

  • 博客(30)
  • 收藏
  • 关注

原创 【一天一大 lee】二叉搜索树中的插入操作 (难度:中等) - Day20200930

题目:给定二叉搜索树(BST)的根节点和要插入树中的值,将值插入二叉搜索树。 返回插入后二叉搜索树的根节点。 输入数据保证,新值和原始二叉搜索树中的任意节点值都不同。注意,可能存在多种有效的插入方式,只要树在插入后仍保持为二叉搜索树即可。 你可以返回任意有效的结果。例如,给定二叉搜索树: 4 / \ 2 7 / \ 1 3和 插入的值: 5你可以返回这个二叉搜索树:或者这个树也是有效的:提示:给定的树上的节点数介.

2020-09-30 17:54:24 75

原创 【一天一大 lee】二叉树的后序遍历 (难度:中等) - Day20200929

题目:给定一个二叉树,返回它的 后序 遍历。输入: [1,null,2,3] 1 \ 2 / 3输出: [3,2,1]进阶:递归算法很简单,你可以通过迭代算法完成吗?抛砖引玉深度优先遍历(DFS)二叉树的后续遍历:先遍历左子树,在遍历右子树,最后遍历子树根节点思路先用“很简单”的递归算法解决下吧/** * Definition for a binary tree node. * function TreeNode(val) { * .

2020-09-29 15:28:29 90

原创 【一天一大 lee】填充每个节点的下一个右侧节点指针 II (难度:中等) - Day20200928

题目:给定一个二叉树struct Node { int val; Node *left; Node *right; Node *next;}填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为 NULL。初始状态下,所有 next 指针都被设置为 NULL。进阶:你只能使用常量级额外空间。使用递归解题也符合要求,本题中递归程序占用的栈空间不算做额外的空间复杂度。示例:输入:root = [1,2,3.

2020-09-28 15:35:23 101

原创 【一天一大 lee】二叉搜索树的最近公共祖先 (难度:简单) - Day20200927

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

2020-09-28 15:31:30 77

原创 【一天一大 lee】路径总和 II (难度:中等) - Day20200926

题目:给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径。说明: 叶子节点是指没有子节点的节点。示例:给定如下二叉树,以及目标和 sum = 22, 5 / \ 4 8 / / \ 11 13 4 / \ / \ 7 2 5 1返回:[ [5,4,11,2], [5.

2020-09-28 15:26:09 90

原创 【一天一大 lee】从中序与后序遍历序列构造二叉树 (难度:中等)-Day20200925

题目:根据一棵树的中序遍历与后序遍历构造二叉树。注意:你可以假设树中没有重复的元素。例如,给出:中序遍历 inorder = [9,3,15,20,7]后序遍历 postorder = [9,15,7,20,3]返回如下的二叉树: 3 / \ 9 20 / \ 15 7抛砖引玉思路参数:中序遍历的数组后续遍历的数组思路借助后续遍历的节点找到每层子树的根节点rootIndex:二叉子树在后续遍历数组中的位置索引leftInd.

2020-09-28 15:20:58 102

原创 【一天一大 lee】二叉搜索树中的众数 (难度:简单)-Day20200924

【公众号:前端小书童】题目:给定一个有相同值的二叉搜索树(BST),找出 BST 中的所有众数(出现频率最高的元素)。假定 BST 有如下定义:结点左子树中所含结点的值小于等于当前结点的值结点右子树中所含结点的值大于等于当前结点的值左子树和右子树都是二叉搜索树例如:给定 BST [1,null,2,2],示例: 1 \ 2 / 2返回[2].提示: 如果众数超过 1 个,不需考虑输出顺序进阶: 你可以不使用额外的空间吗?(假设由递归产生的.

2020-09-24 11:05:06 135

原创 【一天一大 lee】 合并二叉树 (难度:简单)-Day20200923

原文链接:合并二叉树 - 前端小书童题目:给定两个二叉树,想象当你将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠。你需要将他们合并为一个新的二叉树。合并的规则是如果两个节点重叠,那么将他们的值相加作为节点合并后的新值,否则不为 NULL 的节点将直接作为新二叉树的节点。示例:示例 1:输入: Tree 1 Tree 2 1 2 / \ .

2020-09-23 16:57:48 99

原创 【一天一大 lee】 监控二叉树 (难度:困难)-Day20200922

题目:给定一个二叉树,我们在树的节点上安装摄像头。节点上的每个摄影头都可以监视其父对象、自身及其直接子对象。计算监控树的所有节点所需的最小摄像头数量。示例:示例 1:输入:[0,0,null,0,0]输出:1解释:如图所示,一台摄像头足以监控所有节点。示例 2:输入:[0,0,null,0,null,0,null,null,0]输出:2解释:需要至少两个摄像头来监视树的所有节点。 上图显示了摄像头放置的有效位置之一。提示:给定树的节点数的范围是 [1, 100.

2020-09-22 13:10:54 223 1

原创 【一天一大 lee】 把二叉搜索树转换为累加树 (难度:简单)-Day20200921

题目:给定一个二叉搜索树(Binary Search Tree),把它转换成为累加树(Greater Tree),使得每个节点的值是原来的节点值加上所有大于它的节点值之和。示例:输入: 原始二叉搜索树: 5 / \ 2 13输出: 转换为累加树: 18 / \ 20 13抛砖引玉反序中序遍历如果二叉树节点是无序的,那么在.

2020-09-21 16:25:14 187

原创 【一天一大 lee】子集 (难度:中等)-Day20200920

题目:给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。说明: 解集不能包含重复的子集。示例:输入: nums = [1,2,3]输出:[ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], []]抛砖引玉递归回溯使用过递归回溯算法解决过:全排列全排列 II一句话递归回溯算法的逻辑简要概况就是:在选择多个原数组的元素组成新成组合时,对于任何一个原数组的元素在新的组合中都可以对.

2020-09-21 16:23:36 97

原创 一天一大 lee(左叶子之和)难度:简单-Day20200919

题目:计算给定二叉树的所有左叶子之和。示例: 3 / \ 9 20 / \ 15 7在这个二叉树中,有两个左叶子,分别是 9 和 15,所以返回 24抛砖引玉二叉树遍历,首先想到的有两种遍历方式深度优先搜索(DFS)、广度优先搜索(BFS)剩下的问题就是在遍历中找出哪些节点是左叶子节点了:叶子结点:没有下一层(即该节点之后没有left和right)左叶子结点:节点上一次被其他节点(设为node)left连接那么在判断出左叶子节点的逻辑应该.

2020-09-19 22:16:29 73

原创 一天一大 lee(全排列 II)难度:中等-Day20200918

题目:给定一个可包含重复数字的序列,返回所有不重复的全排列。示例:输入: [1,1,2]输出:[ [1,1,2], [1,2,1], [2,1,1]]抛砖引玉在全排列中,处理过对一个数组的元素重新进行排列,但是全排列中限制了没有重复的元素:全排列本题中包含重复的元素,则在枚举的过程中,即使从不同位置取元素组合,也可能形成相同的组合。那么本题的重点就成了如何避免形成重复的组合了:记录选择是不能使用值作为记录的标记需要使用索引重复元素合并参与索引选择-回溯时只参与一.

2020-09-18 15:21:43 108

原创 一天一大 lee(冗余连接 II)难度:困难-Day20200917

题目:在本问题中,有根树指满足以下条件的有向图。该树只有一个根节点,所有其他节点都是该根节点的后继。每一个节点只有一个父节点,除了根节点没有父节点。输入一个有向图,该图由一个有着 N 个节点 (节点值不重复 1, 2, …, N) 的树及一条附加的边构成。附加的边的两个顶点包含在 1 到 N 中间,这条附加的边不属于树中已存在的边。结果图是一个以边组成的二维数组。 每一个边 的元素是一对 [u, v],用以表示有向图中连接顶点 u 和顶点 v 的边,其中 u 是 v 的一个父节点。返回一条能删除的.

2020-09-18 15:19:54 112

原创 一天一大 lee(翻转二叉树)难度:简单-Day20200916

题目:翻转一棵二叉树。示例: 4 / \ 2 7 / \ / \1 3 6 9输出 4 / \ 7 2 / \ / \9 6 3 1抛砖引玉思路深度优先遍历(DFS)传入的节点如果不是叶子节点即包含左右子树,则优先翻转左右子树递归到叶子节点开始翻转,之后向上逐层交换拼接/** * Definition for a binary tree node. * function Tree.

2020-09-16 09:52:15 102

原创 一天一大 lee(解数独)难度:困难-Day20200915

题目:编写一个程序,通过已填充的空格来解决数独问题。一个数独的解法需遵循如下规则:数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。空白格用 ‘.’ 表示。一个数独。答案被标成红色。Note:给定的数独序列只包含数字 1-9 和字符 ‘.’ 。你可以假设给定的数独只有唯一解。给定数独永远是 9x9 形式的。抛砖引玉思路对应任意一个字符 '.'填充的单元格,记录.

2020-09-15 20:57:05 151

原创 一天一大 lee(二叉树的中序遍历)难度:中等-Day20200914

题目:给定一个二叉树,返回它的中序 遍历。示例:输入: [1,null,2,3] 1 \ 2 / 3输出: [1,3,2]进阶: 递归算法很简单,你可以通过迭代算法完成吗?抛砖引玉思路二叉树的中序遍历:左子树——>根节点——>右子树**注意:**这个遍历顺序不仅仅是遍历二叉树整体的顺序也是遍历所有子树的顺序递归/** * Definition for a binary tree node. * function TreeN.

2020-09-14 22:36:43 118

原创 一天一大 lee(单词搜索)难度:简单-Day20200913

题目:给定一个二维网格和一个单词,找出该单词是否存在于网格中。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。示例:board =[ ['A','B','C','E'], ['S','F','C','S'], ['A','D','E','E']]给定 word = "ABCCED", 返回 true给定 word = "SEE", 返回 true给定 word = "ABCB", .

2020-09-14 22:34:50 109

原创 一天一大 lee(二叉树的层平均值)难度:简单-Day20200912

题目:给定一个非空二叉树, 返回一个由每层节点平均值组成的数组。示例:输入: 3 / \ 9 20 / \ 15 7输出:[3, 14.5, 11]解释:第 0 层的平均值是 3 , 第1层是 14.5 , 第2层是 11 。因此返回 [3, 14.5, 11] 。提示:节点值的范围在32位有符号整数范围内。抛砖引玉广度优先搜索(BFS)从根节点开始遍历,遍历一个元素就将其从queue中取出,将其下一层放入queue中待下次遍历每一.

2020-09-12 09:20:54 123

原创 一天一大 lee(组合总和 III)难度:中等-Day20200911

题目:找出所有相加之和为 n 的 k 个数的组合。组合中只允许含有 1 - 9 的正整数,并且每种组合中不存在重复的数字。说明:所有数字都是正整数。解集不能包含重复的组合。示例:示例 1输入: k = 3, n = 7输出: [[1,2,4]]示例 2输入: k = 3, n = 9输出: [[1,2,6], [1,3,5], [2,3,4]]抛砖引玉这个月是组合月吗,和递归回溯杠上了(¬_¬)瞄思路day-08: 组合 (难度:中等)递归回溯的逻辑不变.

2020-09-11 10:16:51 78

原创 一天一大 lee(组合总和 II)难度:中等-Day20200910

题目:给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的每个数字在每个组合中只能使用一次。说明:所有数字(包括 target)都是正整数。解集不能包含重复的组合。示例:示例 1输入: candidates = [10,1,2,7,6,1,5], target = 8,所求解集为:[ [1, 7], [1, 2, 5], [2, 6], [.

2020-09-10 23:16:35 90

原创 一天一大 lee(组合总和)难度:中等-Day20200909

题目:给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的数字可以无限制重复被选取。说明:所有数字(包括 target)都是正整数。解集不能包含重复的组合。示例:示例1输入:candidates = [2,3,6,7], target = 7,所求解集为:[ [7], [2,2,3]]示例2输入:candidates = [2,3,5].

2020-09-09 23:31:59 85

原创 一天一大 lee(组合)难度:中等-Day20200908

题目:给定两个整数 n 和 k,返回 1 … n 中所有可能的 k 个数的组合。示例:输入: n = 4, k = 2输出:[ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4],]抛砖引玉思路从 n 中选择 k 个数对于任意一个数存在选择和不选择两种情况,其中这两种情况有分别对应着不同的组合递归:参数:枚举分支的指针枚举分支的中间组合数组终止:组合数组元素数量等于 k枚举指针越界递归回溯/*.

2020-09-09 23:31:00 84

原创 一天一大 lee(前 K 个高频元素)难度:中等-Day20200907

题目:给定一个非空的整数数组,返回其中出现频率前 k 高的元素。示例:示例 1输入: nums = [1,1,1,2,2,3], k = 2输出: [1,2]示例 2输入: nums = [1], k = 1输出: [1]抛砖引玉思路遍历记录每个元素出现的次数对数组去重且按照出现的次数排序前 k 个元素就要求的结果/** * @param {number[]} nums * @param {number} k * @return {number[]} .

2020-09-09 23:28:26 158

原创 一天一大 lee(二叉树的层次遍历 II)难度:简单-Day20200906

题目:给定一个二叉树,返回其节点值自底向上的层次遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)示例:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其自底向上的层次遍历为:[ [15,7], [9,20], [3]]抛砖引玉思路二叉树遍历:广度优先搜索(BFS),将待遍历的元素存放到数组中,一层层遍历深度优先搜索(DFS),选择一个元素将其遍历至最里.

2020-09-09 23:25:43 133

原创 一天一大 lee(第k个排列)难度:中等-Day20200905

题目:给出集合 [1,2,3,…,n],其所有元素共有 n! 种排列。按大小顺序列出所有排列情况,并一一标记,当 n = 3 时, 所有排列如下:“123”“132”“213”“231”“312”“321”给定 n 和 k,返回第 k 个排列。说明:给定 n 的范围是 [1, 9]。给定 k 的范围是[1, n!]。示例:示例 1输入: n = 3, k = 3输出: "213"示例 2输入: n = 4, k = 9输出: "2314"抛砖引玉.

2020-09-09 23:21:18 132

原创 一天一大 lee(二叉树的所有路径)难度:简单-Day20200904

题目:给定一个二叉树,返回所有从根节点到叶子节点的路径。说明: 叶子节点是指没有子节点的节点。示例:输入: 1 / \2 3 \ 5输出: ["1->2->5", "1->3"]解释: 所有根节点到叶子节点的路径为: 1->2->5, 1->3抛砖引玉深度优先搜索(DFS)从根节点开始递归遍历递归传入的节点为:null,递归结束存在 val,则拼接存在左右节点则递归遍历左右记得点,并且传入已拼接的字符给.

2020-09-04 10:37:28 98

原创 一天一大 lee(N 皇后)难度:困难-Day20200903

题目:n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。上图为 8 皇后问题的一种解法。给定一个整数 n,返回所有不同的 n 皇后问题的解决方案。每一种解法包含一个明确的 n 皇后问题的棋子放置方案,该方案中 ‘Q’ 和 ‘.’ 分别代表了皇后和空位。示例:输入:4输出:[ [".Q..", // 解法 1 "...Q", "Q...", "..Q."], ["..Q.", // 解法 2 "Q...", ".

2020-09-03 17:09:57 225

原创 一天一大 lee(表示数值的字符串)难度:中等-Day20200902

题目:请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100"、“5e2”、"-123"、“3.1416”、"-1E-16"、“0123"都表示数值,但"12e”、“1a3.14”、“1.2.3”、"±5"及"12e+5.4"都不是。抛砖引玉思路数组只包含正负号和 e、E、点(.),且 e 之后不能有小数点首先来两个最方便的方法正则/** * @param {string} s * @return {boolean} */var isNumber .

2020-09-02 14:35:41 172

原创 一天一大 lee(预测赢家)难度:中等-Day20200901

题目:给定一个表示分数的非负整数数组。 玩家 1 从数组任意一端拿取一个分数,随后玩家 2 继续从剩余数组任意一端拿取分数,然后玩家 1 拿,…… 。每次一个玩家只能拿取一个分数,分数被拿取之后不再可取。直到没有剩余分数可取时游戏结束。最终获得分数总和最多的玩家获胜。给定一个表示分数的数组,预测玩家 1 是否会成为赢家。你可以假设每个玩家的玩法都会使他的分数最大化。示例:示例 1输入:[1, 5, 2]输出:False解释:一开始,玩家1可以从1和2中进行选择。如果他选择 2(或者 .

2020-09-01 17:05:22 189

空空如也

空空如也

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

TA关注的人

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