自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(126)
  • 收藏
  • 关注

原创 编程训练第一百二十五期——和为K的子数组

项目场景:给定一个整数数组和一个整数 k,你需要找到该数组中和为 k 的连续的子数组的个数。示例:输入:nums = [1,1,1], k = 2输出: 2 , [1,1] 与 [1,1] 为两种不同的情况。解法:1.前缀和用pre记录当前的数字和,用哈希表记录前i项的和,键是数字和,值是出现的次数,每当在记录的时候,判断 pre - k 的值是否出现在哈希表中,如果出现,则将出现的次数进行累加。时间复杂度O(N)空间复杂度O(N)class Solution {public:

2021-04-26 00:28:20 315

原创 编程训练第一百二十四期——除自身以外数组的乘积

编程问题:给你一个长度为 n 的整数数组 nums,其中 n > 1,返回输出数组 output ,其中 output[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。示例:输入: [1,2,3,4]输出: [24,12,8,6]解法:1.左右乘积不必将所有数字的乘积除以给定索引处的数字得到相应的答案,而是利用索引左侧所有数字的乘积和右侧所有数字的乘积(即前缀与后缀)相乘得到答案。对于给定索引 i,我们将使用它左边所有数字的乘积乘以右边所有数字的乘积。时间复杂

2021-04-22 01:03:26 227

原创 编程训练第一百二十三期——每日温度

编程问题:给你一个用字符数组 tasks 表示的 CPU 需要执行的任务列表。其中每个字母表示一种不同种类的任务。任务可以以任意顺序执行,并且每个任务都可以在 1 个单位时间内执行完。在任何一个单位时间,CPU 可以完成一个任务,或者处于待命状态。然而,两个 相同种类 的任务之间必须有长度为整数 n 的冷却时间,因此至少有连续 n 个单位时间内 CPU 在执行不同的任务,或者在待命状态。你需要计算完成所有任务所需要的 最短时间 。示例:输入:[73, 74, 75, 71, 69, 72, 7

2021-04-22 00:29:53 630

原创 编程训练第一百二十二期——任务调度器

编程问题:给你一个用字符数组 tasks 表示的 CPU 需要执行的任务列表。其中每个字母表示一种不同种类的任务。任务可以以任意顺序执行,并且每个任务都可以在 1 个单位时间内执行完。在任何一个单位时间,CPU 可以完成一个任务,或者处于待命状态。然而,两个 相同种类 的任务之间必须有长度为整数 n 的冷却时间,因此至少有连续 n 个单位时间内 CPU 在执行不同的任务,或者在待命状态。你需要计算完成所有任务所需要的 最短时间 。示例:输入:tasks = [“A”,“A”,“A”,“B”,“B

2021-04-21 00:38:13 156

原创 编程训练第一百二十一期——完全平方数

编程问题:给定正整数 n,找到若干个完全平方数(比如 1, 4, 9, 16, …)使得它们的和等于 n。你需要让组成和的完全平方数的个数最少。给你一个整数 n ,返回和为 n 的完全平方数的 最少数量 。完全平方数 是一个整数,其值等于另一个整数的平方;换句话说,其值等于一个整数自乘的积。例如,1、4、9 和 16 都是完全平方数,而 3 和 11 不是。示例:输入:n = 12输出:3解释:12 = 4 + 4 + 4输入:n = 13输出:2解释:13 = 4 + 9解法:

2021-04-16 00:12:20 304

原创 编程训练第一百二十期——打家劫舍 III

编程问题:在上次打劫完一条街道之后和一圈房屋后,小偷又发现了一个新的可行窃的地区。这个地区只有一个入口,我们称之为“根”。 除了“根”之外,每栋房子有且只有一个“父“房子与之相连。一番侦察之后,聪明的小偷意识到“这个地方的所有房屋的排列类似于一棵二叉树”。 如果两个直接相连的房子在同一天晚上被打劫,房屋将自动报警。计算在不触动警报的情况下,小偷一晚能够盗取的最高金额。问题描述:输入: [3,2,3,null,3,null,1]输出: 7输入: [3,4,5,1,3,null,1]输出:

2021-04-15 21:54:34 114

原创 编程训练第一百十九期—— 路径总和 III

编程问题:给定一个二叉树,它的每个结点都存放着一个整数值。找出路径和等于给定数值的路径总数。路径不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)。二叉树不超过1000个节点,且节点数值范围是 [-1000000,1000000] 的整数。问题描述:输入:root = [10,5,-3,3,2,null,11,3,-2,null,1], sum = 8输出:2解法:1.递归可以采用前缀和(该节点到根之间的路径和)思想来解题。因为对于同一路径上的

2021-04-15 20:19:09 97

原创 编程训练第一百一十八期——寻找重复数

编程问题:给定一个包含 n + 1 个整数的数组 nums ,其数字都在 1 到 n 之间(包括 1 和 n),可知至少存在一个重复的整数。假设 nums 只有 一个重复的整数 ,找出 这个重复的数 。示例:输入:nums = [1,3,4,2,2]输出:2输入:nums = [3,1,3,4,2]输出:3输入:nums = [1,1]输出:1输入:nums = [1,1,2]输出:1解法:1.排序时间复杂度O(NlogN)空间复杂度O(logN)class Solut

2021-04-15 00:39:16 141

原创 编程训练第一百一十七期——把二叉搜索树转换为累加树

编程问题:给出二叉 搜索 树的根节点,该树的节点值各不相同,请你将其转换为累加树(Greater Sum Tree),使每个节点 node 的新值等于原树中大于或等于 node.val 的值之和。示例:输入:[4,1,6,0,2,5,7,null,null,null,3,null,null,null,8]输出:[30,36,21,36,35,26,15,null,null,null,33,null,null,null,8]输入:root = [0,null,1]输出:[1,null,1]输

2021-04-14 00:31:26 104

原创 编程训练第一百一十六期——二叉树的最近公共祖先

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

2021-04-13 23:47:20 87

原创 编程训练第一百一十五期——二叉树的层序遍历

编程问题:给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。示例:输入:[3,9,20,null,null,15,7]输出:[[3],[9,20],[15,7]]解法:1.层序遍历时间复杂度O(N),每个点进队出队各一次,故渐进时间复杂度为 O(N)。空间复杂度O(N),队列中元素的个数不超过N个,故渐进空间复杂度为 O(N)。/** * Definition for a binary tree node. * struct T

2021-04-13 10:25:17 80

原创 编程训练第一百十四期——二叉树展开为链表

编程问题:给你二叉树的根结点 root ,请你将它展开为一个单链表:展开后的单链表应该同样使用 TreeNode ,其中 right 子指针指向链表中下一个结点,而左子指针始终为 null 。展开后的单链表应该与二叉树 先序遍历 顺序相同。示例:输入:root = [1,2,5,3,4,null,6]输出:[1,null,2,null,3,null,4,null,5,null,6]输入:root = []输出:[]输入:root = [0]输出:[0]解法:1.递归由于

2021-04-12 21:59:32 92

原创 编程训练第一百一十三期——验证二叉搜索树

编程问题:给定一个二叉树,判断其是否是一个有效的二叉搜索树。假设一个二叉搜索树具有如下特征:节点的左子树只包含小于当前节点的数。节点的右子树只包含大于当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。示例:输入: [5,1,4,null,null,3,6]输出:false解法:1.深度优先遍历由于二叉排序树的中序遍历是非递减序列,因此可以利用数组来存储中序遍历的结果,再利用一次遍历验证是否满足非递减性质。时间复杂度O(N),二叉树的每个节点最多被访问一次,因此时间复

2021-04-12 19:49:17 65

原创 编程训练第一百一十二期——不同的二叉搜索树

编程问题:给定一个整数 n,求以 1 … n 为节点组成的二叉搜索树有多少种?示例:输入: 3输出: 5解法:1.动态规划状态: dp[i] 表示长度为 n 的序列能构成的不同二叉搜索树的个数。因为可以遍历每个数字 i,将该数字作为树根,将1⋯(i−1) 序列作为左子树,将 (i+1)⋯n 序列作为右子树。接着我们可以按照同样的方式递归构建左子树和右子树。在上述构建的过程中,由于根的值不同,因此我们能保证每棵二叉搜索树是唯一的。转移方程: 当序列长度为 i 时,可以对 j 在1⋯

2021-04-11 20:31:23 63

原创 编程训练第一百十一期——删除链表的倒数第 N 个结点

编程问题:给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。问题描述:输入:head = [1,2,3,4,5], n = 2输出:[1,2,3,5]输入:head = [1], n = 1输出:[]输入:head = [1,2], n = 1输出:[1]解法:1.两次遍历首先从头节点开始对链表进行一次遍历,得到链表的长度 size。随后我们再从头节点开始对链表进行一次遍历,当遍历到第 L−n+1 个节点时,它就是我们需要删除的节点。时间复杂度O(N)空间复

2021-04-11 14:46:37 108

原创 编程训练第一百一十期——爬楼梯

编程问题:假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?示例:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。输入: 3输出: 3解释: 有三种方法可以爬到楼顶。解法:1.递归时间复杂度O(N^2)空间复杂度O(logN)class Solution {private: void dfs(int n) { if (n < 0) retur

2021-04-11 01:46:16 500

原创 编程训练第一百零九期——只出现一次的数字

编程问题:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。示例:输入: [2,2,1]输出: 1输入: [4,1,2,1,2]输出: 4解法:1.哈希表维护一个哈希表来存储nums的值和出现的次数,首先遍历一次来初始化nums中数字和对应出现的次数,接着再遍历一次map,如果遇到次数为1则结束遍历,返回该数字。时间复杂度O(N)空间复杂度O(N)class Solution {public: int single

2021-04-10 20:54:01 119

原创 编程训练第一百零八期——课程表

编程问题:你这个学期必须选修 numCourses 门课程,记为 0 到 numCourses - 1 。在选修某些课程之前需要一些先修课程。 先修课程按数组 prerequisites 给出,其中 prerequisites[i] = [ai, bi] ,表示如果要学习课程 ai 则 必须 先学习课程 bi 。例如,先修课程对 [0, 1] 表示:想要学习课程 0 ,你需要先完成课程 1 。请你判断是否可能完成所有课程的学习?如果可以,返回 true ;否则,返回 false 。示例:输入:

2021-04-10 20:08:04 303

原创 编程训练第一百零七期——汉明距离

编程问题:两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。给出两个整数 x 和 y,计算它们之间的汉明距离。示例:输入: x = 1, y = 4输出: 2解法:1.异或+位运算时间复杂度O(1),int 的大小是固定的,处理时间也是固定的。 32 位整数需要 32 次迭代。空间复杂度O(1)class Solution {public: int hammingDistance(int x, int y) { int res = 0;

2021-04-09 20:14:58 73

原创 编程训练第一百零六期——岛屿数量

编程问题:给你一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围。示例:输入:grid = [[“1”,“1”,“1”,“1”,“0”],[“1”,“1”,“0”,“1”,“0”],[“1”,“1”,“0”,“0”,“0”],[“0”,“0”,“0”,“0”,“0”]]输出:1输入:grid = [[“1”,“1”,“0”,“0”,

2021-04-09 11:05:45 203

原创 编程训练第一百零五期——打家劫舍

编程问题:你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。示例:输入:[1,2,3,1]输出:4解释:偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。偷窃到的最高金额 = 1 + 3 = 4 。输入:[2,7,9,3,1

2021-04-08 21:04:12 62

原创 编程训练第一百零四期——相交链表

编程问题:编写一个程序,找到两个单链表相交的起始节点。示例:输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = 3输出:Reference of the node with value = 8输入解释:相交节点的值为 8 (注意,如果两个链表相交则不能为 0)。从各自的表头开始算起,链表 A 为 [4,1,8,4,5],链表 B 为 [5,0,1,8,4,5]。在 A 中,相交节

2021-04-08 10:34:11 116

原创 编程训练第一百零三期——最小栈

编程问题:设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。push(x) —— 将元素 x 推入栈中。pop() —— 删除栈顶的元素。top() —— 获取栈顶元素。getMin() —— 检索栈中的最小元素。示例:输入:[“MinStack”,“push”,“push”,“push”,“getMin”,“pop”,“top”,“getMin”]nb[[],[-2],[0],[-3],[],[],[],[]]输出:[null,null,nul

2021-04-08 00:12:10 38

原创 编程训练第一百零二期——乘积最大子数组

编程问题:给你一个整数数组 nums ,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。示例:输入: [2,3,-2,4]输出: 6解释: 子数组 [2,3] 有最大乘积 6。输入: [-2,0,-1]输出: 0解释: 结果不能为 2, 因为 [-2,-1] 不是子数组。解法:1.动态规划状态:考虑当前位置如果是一个负数的话,希望以它前一个位置结尾的某个段的积也是个负数,这样就可以负负得正,进一步希望这个积尽可能小。如果当前位置是一

2021-04-07 23:53:30 185

原创 编程训练第一百零一期——魔塔游戏

编程问题:小扣当前位于魔塔游戏第一层,共有 N 个房间,编号为 0 ~ N-1。每个房间的补血道具/怪物对于血量影响记于数组 nums,其中正数表示道具补血数值,即血量增加对应数值;负数表示怪物造成伤害值,即血量减少对应数值;0 表示房间对血量无影响。小扣初始血量为 1,且无上限。假定小扣原计划按房间编号升序访问所有房间补血/打怪,为保证血量始终为正值,小扣需对房间访问顺序进行调整,每次仅能将一个怪物房间(负数的房间)调整至访问顺序末尾。请返回小扣最少需要调整几次,才能顺利访问所有房间。若调整顺序也无法

2021-04-07 00:02:52 568

原创 编程训练第一百期——LRU 缓存机制

编程问题:运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制 。实现 LRUCache 类,LRUCache(int capacity) 以正整数作为容量 capacity 初始化 LRU 缓存:int get(int key) 如果关键字 key 存在于缓存中,则返回关键字的值,否则返回 -1 。void put(int key, int value) 如果关键字已经存在,则变更其数据值;如果关键字不存在,则插入该组「关键字-值」。当缓存容量达到上限时,它应该在写入新数

2021-04-06 23:07:21 66

原创 编程训练第九十九期——乐团占位

编程问题:某乐团的演出场地可视作 num * num 的二维矩阵 grid(左上角坐标为 [0,0]),每个位置站有一位成员。乐团共有 9 种乐器,乐器编号为 1~9,每位成员持有 1 个乐器。为保证声乐混合效果,成员站位规则为:自 grid 左上角开始顺时针螺旋形向内循环以 1,2,…,9 循环重复排列。请返回位于场地坐标 [Xpos,Ypos] 的成员所持乐器编号。示例:输入:num = 3, Xpos = 0, Ypos = 2输出:3输入:num = 4, Xpos = 1, Ypo

2021-04-06 16:31:33 117

原创 编程训练第九十七期——前 K 个高频元素

编程问题:给定一个非空的整数数组,返回其中出现频率前 k 高的元素。示例:输入: nums = [1,1,1,2,2,3], k = 2输出: [1,2]输入: nums = [1], k = 1输出: [1]解法:1.哈希表+排序时间复杂度O(NlogN)空间复杂度O(N)class Solution {public: static bool compare(const pair<int, int> a, const pair<int, int&g

2021-04-05 00:19:38 159

原创 编程训练第九十六期——最后一块石头的重量

编程问题:有一堆石头,每块石头的重量都是正整数。每一回合,从中选出两块 最重的 石头,然后将它们一起粉碎。假设石头的重量分别为 x 和 y,且 x <= y。那么粉碎的可能结果如下:如果 x == y,那么两块石头都会被完全粉碎;如果 x != y,那么重量为 x 的石头将会完全粉碎,而重量为 y 的石头新重量为 y-x。最后,最多只会剩下一块石头。返回此石头的重量。如果没有石头剩下,就返回 0。示例:输入:[2,7,4,1,8,1]输出:1解释:先选出 7 和 8,得到 1

2021-04-04 22:20:24 49

原创 编程训练第九十五期——数据流中的第 K 大元素

编程问题:设计一个找到数据流中第 k 大元素的类(class)。注意是排序后的第 k 大元素,不是第 k 个不同的元素。请实现 KthLargest 类:KthLargest(int k, int[] nums) 使用整数 k 和整数流 nums 初始化对象。int add(int val) 将 val 插入数据流 nums 后,返回当前数据流中第 k 大的元素。示例:输入:[“KthLargest”, “add”, “add”, “add”, “add”, “add”][[3, [

2021-04-04 21:49:55 40

原创 编程训练第九十四期——最大数

项目场景:给定一组非负整数 nums,重新排列每个数的顺序(每个数不可拆分)使之组成一个最大的整数。注意:输出结果可能非常大,所以你需要返回一个字符串而不是整数。示例:输入:nums = [10,2]输出:“210”输入:nums = [3,30,34,5,9]输出:“9534330”输入:nums = [1]输出:“1”输入:nums = [10]输出:“10”解法:1.排序时间复杂度O(NlogN)空间复杂度O(N)class Solution {private:

2021-04-04 19:18:52 194

原创 编程训练第九十二期——二叉树的最大深度

编程问题:给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:输入:[3,9,20,null,null,15,7]输出:3解法:1.深度优先遍历时间复杂度O(N)空间复杂度O(N)/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * Tree

2021-04-02 10:03:16 99

原创 编程训练第九十一期——合并二叉树

项目场景:给定两个二叉树,想象当你将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠。你需要将他们合并为一个新的二叉树。合并的规则是如果两个节点重叠,那么将他们的值相加作为节点合并后的新值,否则不为 NULL 的节点将直接作为新二叉树的节点。示例:输入:[1,3,2,5][2,1,3,null,4,null,7]输出:[3,4,2,5,4,null,7]解法:1.递归时间复杂度O(min(m,n)),其中 m 和 n 分别是两个二叉树的节点个数。对两个二叉树同时进行深度优先

2021-04-01 22:49:56 85

原创 编程训练第九十期——N 叉树的最大深度

编程问题:给定一个 N 叉树,找到其最大深度。最大深度是指从根节点到最远叶子节点的最长路径上的节点总数。N 叉树输入按层序遍历序列化表示,每组子节点由空值分隔(请参见示例)。示例:输入:root = [1,null,3,2,4,null,5,6]输出:3输入:root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]输出:5解法:1.递归时间复杂度O

2021-04-01 01:08:29 94

原创 编程训练第八十九期——二叉搜索树的最小绝对差

编程问题:给你一棵所有节点为非负值的二叉搜索树,请你计算树中任意两节点的差的绝对值的最小值。示例:输入:[1,null,3,2]输出:1解法:时间复杂度O(N)空间复杂度O(N)/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(

2021-04-01 00:30:17 50

原创 编程训练第八十八期—— 二叉搜索树中的众数

编程问题:给定一个有相同值的二叉搜索树(BST),找出 BST 中的所有众数(出现频率最高的元素)。假定 BST 有如下定义:结点左子树中所含结点的值小于等于当前结点的值结点右子树中所含结点的值大于等于当前结点的值左子树和右子树都是二叉搜索树示例:输入:[1,null,2,2]输出:[2]解法:1.遍历(前中后都可)+ 哈希表当作一般二叉树来处理,没有用到BST的中序遍历是非递减序列的性质。我们可以先通过递归遍历一遍BST,用哈希表存储每个结点值出现的次数。通过一次循环获得

2021-03-31 01:18:02 90

原创 编程训练第八十七期——二叉树的中序遍历

编程问题:给定一个二叉树的根节点 root ,返回它的 中序 遍历。问题描述:输入:root = [1,null,2,3]输出:[1,3,2]输入:root = []输出:[]输入:root = [1]输出:[1]解法:1.递归时间复杂度O(N)空间复杂度O(N)/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; *

2021-03-31 00:14:15 159

原创 编程训练第八十六期——二叉树的垂序遍历

编程题目:给你二叉树的根结点 root ,请你设计算法计算二叉树的 垂序遍历 序列。对位于 (row, col) 的每个结点而言,其左右子结点分别位于 (row + 1, col - 1) 和 (row + 1, col + 1) 。树的根结点位于 (0, 0) 。二叉树的 垂序遍历 从最左边的列开始直到最右边的列结束,按列索引每一列上的所有结点,形成一个按出现位置从上到下排序的有序列表。如果同行同列上有多个结点,则按结点的值从小到大进行排序。返回二叉树的 垂序遍历 序列。示例:输入:root

2021-03-30 00:56:35 117

原创 编程训练第八十五期——后继者

编程问题:设计一个算法,找出二叉搜索树中指定节点的“下一个”节点(也即中序后继)。如果指定节点没有对应的“下一个”节点,则返回null。问题描述:输入:root = [2,1,3], p = 1输出:输出: 2输入:root = [5,3,6,2,4,null,null,1], p = 6输出:null解法:1.递归如果结点 p 的值大于等于 root 的值,说明 p 的后继结点在 root 右子树中,那么就递归到右子树中查找。如果结点 p 的值小于 root 的值,说明 p 在

2021-03-29 01:57:17 49

原创 编程训练第八十四期——二叉树中所有距离为 K 的结点

编程训练:给定一个二叉树(具有根结点 root), 一个目标结点 target ,和一个整数值 K 。返回到目标结点 target 距离为 K 的所有结点的值的列表。 答案可以以任何顺序返回。示例:输入:root = [3,5,1,6,2,0,8,null,null,7,4], target = 5, K = 2输出:[7,4,1]解释:所求结点为与目标结点(值为 5)距离为 2 的结点,值分别为 7,4,以及 1。解法:1.DFS+BFS首先使用 DFS 遍历二叉树,为每个节点保

2021-03-29 00:36:54 124

空空如也

空空如也

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

TA关注的人

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