自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 问答 (2)
  • 收藏
  • 关注

原创 leetcode322. 零钱兑换

leetcode322. 零钱兑换给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1。示例 1:输入: coins = [1, 2, 5], amount = 11输出: 3解释: 11 = 5 + 5 + 1示例 2:输入: coins = [2], amou...

2020-03-31 21:31:57 233

原创 leetcode面试题47. 礼物的最大价值

leetcode面试题47. 礼物的最大价值在一个 m*n 的棋盘的每一格都放有一个礼物,每个礼物都有一定的价值(价值大于 0)。你可以从棋盘的左上角开始拿格子里的礼物,并每次向右或者向下移动一格、直到到达棋盘的右下角。给定一个棋盘及其上面的礼物的价值,请计算你最多能拿到多少价值的礼物?示例 1:输入:[[1,3,1],[1,5,1],[4,2,1]]输出: 12解...

2020-03-31 21:17:03 409

原创 leetcode面试题62. 圆圈中最后剩下的数字

leetcode面试题62. 圆圈中最后剩下的数字约瑟夫环问题,这绝对是我最后一次了,肯定能会了。给出一个好想的方法,不用模拟链表,直接用取模模拟过程先看最开始的版本,在while里面又多了一层循环,最后会超时。public int lastRemaining(int n, int m) { LinkedList<Integer> list = new Lin...

2020-03-30 13:39:12 156

原创 leetcode337. 打家劫舍 III

leetcode337. 打家劫舍 III在上次打劫完一条街道之后和一圈房屋后,小偷又发现了一个新的可行窃的地区。这个地区只有一个入口,我们称之为“根”。 除了“根”之外,每栋房子有且只有一个“父“房子与之相连。一番侦察之后,聪明的小偷意识到“这个地方的所有房屋的排列类似于一棵二叉树”。 如果两个直接相连的房子在同一天晚上被打劫,房屋将自动报警。计算在不触动警报的情况下,小偷一晚能够盗...

2020-03-27 15:12:03 190

原创 leetcode 95. 不同的二叉搜索树 II

leetcode 95. 不同的二叉搜索树 II给定一个整数 n,生成所有由 1 … n 为节点所组成的二叉搜索树。示例:输入: 3输出:[[1,null,3,2],[3,2,null,1],[3,1,null,null,2],[2,1,3],[1,null,2,null,3]]解释:以上的输出对应以下 5 种不同结构的二叉搜索树:1 3...

2020-03-25 18:57:15 133

原创 leetcode96. 不同的二叉搜索树

leetcode96. 不同的二叉搜索树给定一个整数 n,求以 1 … n 为节点组成的二叉搜索树有多少种?示例:输入: 3输出: 5解释:给定 n = 3, 一共有 5 种不同结构的二叉搜索树: 1 3 3 2 1 \ / / / \ \ 3 2 1 ...

2020-03-24 11:53:31 147

原创 leetcode5366. 检查网格中是否存在有效路径

leetcode5366. 检查网格中是否存在有效路径给你一个 m x n 的网格 grid。网格里的每个单元都代表一条街道。grid[i][j] 的街道可以是:1 表示连接左单元格和右单元格的街道。2 表示连接上单元格和下单元格的街道。3 表示连接左单元格和下单元格的街道。4 表示连接右单元格和下单元格的街道。5 表示连接左单元格和上单元格的街道。6 表示连接右单元格和上单...

2020-03-22 12:45:31 207

原创 leetcode 1130. 叶值的最小代价生成树

leetcode 1130. 叶值的最小代价生成树给你一个正整数数组 arr,考虑所有满足以下条件的二叉树:每个节点都有 0 个或是 2 个子节点。数组 arr 中的值与树的中序遍历中每个叶节点的值一一对应。(知识回顾:如果一个节点有 0 个子节点,那么该节点为叶节点。)每个非叶节点的值等于其左子树和右子树中叶节点的最大值的乘积。在所有这样的二叉树中,返回每个非叶节点的值的最小可...

2020-03-20 15:51:57 279

原创 leetcode652. 寻找重复的子树

leetcode652. 寻找重复的子树给定一棵二叉树,返回所有重复的子树。对于同一类的重复子树,你只需要返回其中任意一棵的根结点即可。两棵树重复是指它们具有相同的结构以及相同的结点值。示例 1: 1 / \ 2 3/ / \4 2 4/4下面是两个重复的子树: 2/4和4因此,你需要以列表的形式返回上述重复子树的根结...

2020-03-19 12:34:40 123

原创 leetcode865. 具有所有最深结点的最小子树

leetcode865. 具有所有最深结点的最小子树给定一个根为 root 的二叉树,每个结点的深度是它到根的最短距离。如果一个结点在整个树的任意结点之间具有最大的深度,则该结点是最深的。一个结点的子树是该结点加上它的所有后代的集合。返回能满足“以该结点为根的子树中包含所有最深的结点”这一条件的具有最大深度的结点。示例:输入:[3,5,1,6,2,0,8,nul...

2020-03-18 10:53:45 150

原创 leetcode449. 序列化和反序列化二叉搜索树

leetcode449. 序列化和反序列化二叉搜索树序列化是将数据结构或对象转换为一系列位的过程,以便它可以存储在文件或内存缓冲区中,或通过网络连接链路传输,以便稍后在同一个或另一个计算机环境中重建。设计一个算法来序列化和反序列化二叉搜索树。 对序列化/反序列化算法的工作方式没有限制。 您只需确保二叉搜索树可以序列化为字符串,并且可以将该字符串反序列化为最初的二叉搜索树。编码的字...

2020-03-17 10:18:05 192

原创 leetcode863. 二叉树中所有距离为 K 的结点

leetcode863. 二叉树中所有距离为 K 的结点给定一个二叉树(具有根结点 root), 一个目标结点 target ,和一个整数值 K 。返回到目标结点 target 距离为 K 的所有结点的值的列表。 答案可以以任何顺序返回。示例 1:输入:root = [3,5,1,6,2,0,8,null,null,7,4], target = 5, K = 2输出:...

2020-03-16 15:41:31 199

原创 leetcode5179. 将二叉搜索树变平衡

5179. 将二叉搜索树变平衡给你一棵二叉搜索树,请你返回一棵 平衡后 的二叉搜索树,新生成的树应该与原来的树有着相同的节点值。如果一颗二叉搜索树中,任何节点两棵子树的高度差不超过 1 ,我们就称这棵二叉搜索树是 平衡的 。如果有多种构造方法,请你返回任意一种。示例:输入:root = [1,null,2,null,3,null,4,null,null]输出:[2,1...

2020-03-15 11:59:28 168

原创 leetcode300. 最长上升子序列

leetcode300. 最长上升子序列给定一个无序的整数数组,找到其中最长上升子序列的长度。示例:输入: [10,9,2,5,3,7,101,18]输出: 4解释: 最长的上升子序列是 [2,3,7,101],它的长度是 4。动态规划O(N^2)用dp数组记录比当前的元素小的个数。dp[i]=max(dp[j])+1.当前的dp=这之前的dp里面的最大值+1(自己...

2020-03-14 12:16:57 70

原创 leetcode971. 翻转二叉树以匹配先序遍历

leetcode971. 翻转二叉树以匹配先序遍历这道题的说明还没有题目清晰,所以不粘题内容了.思路前序遍历,遇到当前节点和对应的voyage值不相等的时候,返回false.并且看当前节点的左节点是不是满足下一个voyage,如果不满足要交换左右子树.class Solution { public ArrayList<Integer> list=new ArrayL...

2020-03-13 13:27:13 155

原创 leetcode1372. 二叉树中的最长交错路径

leetcode1372. 二叉树中的最长交错路径给你一棵以 root 为根的二叉树,二叉树中的交错路径定义如下:选择二叉树中 任意 节点和一个方向(左或者右)。如果前进方向为右,那么移动到当前节点的的右子节点,否则移动到它的左子节点。改变前进方向:左变右或者右变左。重复第二步和第三步,直到你在树中无法继续移动。交错路径的长度定义为:访问过的节点数目 - 1(单个节点的路径长度为...

2020-03-12 13:22:58 379 1

原创 leetcode958. 二叉树的完全性检验

leetcode958. 二叉树的完全性检验给定一个二叉树,确定它是否是一个完全二叉树。百度百科中对完全二叉树的定义如下:若设二叉树的深度为 h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数,第 h 层所有的结点都连续集中在最左边,这就是完全二叉树。(注:第 h 层可能包含 1~ 2h 个节点。)我的思路层序遍历,先求高度,特殊处理最后一层.class...

2020-03-10 12:37:05 137

原创 leetcode501. 二叉搜索树中的众数

leetcode501. 二叉搜索树中的众数给定一个有相同值的二叉搜索树(BST),找出 BST 中的所有众数(出现频率最高的元素)。假定 BST 有如下定义:结点左子树中所含结点的值小于等于当前结点的值结点右子树中所含结点的值大于等于当前结点的值左子树和右子树都是二叉搜索树例如:给定 BST [1,null,2,2],1\ 2/2返回[2].提示...

2020-03-09 13:28:31 100

原创 leetcode5354. 通知所有员工所需的时间

leetcode5354. 通知所有员工所需的时间公司里有 n 名员工,每个员工的 ID 都是独一无二的,编号从 0 到 n - 1。公司的总负责人通过 headID 进行标识。在 manager 数组中,每个员工都有一个直属负责人,其中 manager[i] 是第 i 名员工的直属负责人。对于总负责人,manager[headID] = -1。题目保证从属关系可以用树结构显示。...

2020-03-08 13:22:44 272

原创 leetcode450. 删除二叉搜索树中的节点

leetcode450. 删除二叉搜索树中的节点给定一个二叉搜索树的根节点 root 和一个值 key,删除二叉搜索树中的 key 对应的节点,并保证二叉搜索树的性质不变。返回二叉搜索树(有可能被更新)的根节点的引用。一般来说,删除节点可分为两个步骤:首先找到需要删除的节点;如果找到了,删除它。说明: 要求算法时间复杂度为 O(h),h 为树的高度。示例:root...

2020-03-07 11:49:32 158

原创 leetcode1145. 二叉树着色游戏

leetcode1145. 二叉树着色游戏有两位极客玩家参与了一场「二叉树着色」的游戏。游戏中,给出二叉树的根节点 root,树上总共有 n 个节点,且 n 为奇数,其中每个节点上的值从 1 到 n 各不相同。游戏从「一号」玩家开始(「一号」玩家为红色,「二号」玩家为蓝色),最开始时,「一号」玩家从 [1, n] 中取一个值 x(1 <= x <= n);「二号」玩家也...

2020-03-06 13:13:16 339

原创 leetcode623. 在二叉树中增加一行

leetcode623. 在二叉树中增加一行给定一个二叉树,根节点为第1层,深度为 1。在其第 d 层追加一行值为 v 的节点。添加规则:给定一个深度值 d (正整数),针对深度为 d-1 层的每一非空节点 N,为 N 创建两个值为 v 的左子树和右子树。将 N 原先的左子树,连接为新节点 v 的左子树;将 N 原先的右子树,连接为新节点 v 的右子树。如果 d 的值为 1...

2020-03-05 12:18:29 104

原创 leetcode105. 从前序与中序遍历序列构造二叉树

leetcode105. 从前序与中序遍历序列构造二叉树根据一棵树的前序遍历与中序遍历构造二叉树。注意:你可以假设树中没有重复的元素。例如,给出前序遍历 preorder = [3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7]返回如下的二叉树: 3 / \ 9 20 / \ 15 7先看这么一颗...

2020-03-04 13:49:24 105

原创 leetcode1339. 分裂二叉树的最大乘积

leetcode1339. 分裂二叉树的最大乘积给你一棵二叉树,它的根为 root 。请你删除 1 条边,使二叉树分裂成两棵子树,且它们子树和的乘积尽可能大。由于答案可能会很大,请你将结果对 10^9 + 7 取模后再返回。示例 1:输入:root = [1,2,3,4,5,6]输出:110解释:删除红色的边,得到 2 棵子树,和分别为 11 和 10 。它们的乘积是 1...

2020-03-03 13:27:04 258

原创 leetcode1368. 使网格图至少有一条有效路径的最小代价

leetcode1368. 使网格图至少有一条有效路径的最小代价给你一个 m x n 的网格图 grid 。 grid 中每个格子都有一个数字,对应着从该格子出发下一步走的方向。 grid[i][j] 中的数字可能为以下几种情况:1 ,下一步往右走,也就是你会从 grid[i][j] 走到 grid[i][j + 1]2 ,下一步往左走,也就是你会从 grid[i][j] 走到 g...

2020-03-02 11:35:33 258

原创 leetcode563. 二叉树的坡度

leetcode563. 二叉树的坡度给定一个二叉树,计算整个树的坡度。一个树的节点的坡度定义即为,该节点左子树的结点之和和右子树结点之和的差的绝对值。空结点的的坡度是0。整个树的坡度就是其所有节点的坡度之和。示例:输入: 1 / \ 2 3输出: 1解释:结点的坡度 2 : 0结点的坡度 3 : 0结点的坡...

2020-03-02 09:55:56 210

原创 leetcode5346. 二叉树中的列表

leetcode5346. 二叉树中的列表给你一棵以 root 为根的二叉树和一个 head 为第一个节点的链表。如果在二叉树中,存在一条一直向下的路径,且每个点的数值恰好一一对应以 head 为首的链表中每个节点的值,那么请你返回 True ,否则返回 False 。一直向下的路径的意思是:从树中某个节点开始,一直连续向下的路径。示例 1:输入:head = [4,2,8...

2020-03-01 14:07:09 120

空空如也

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

TA关注的人

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