DFS
文章平均质量分 59
我很忙2010
咩
展开
-
leetcode 统计值等于子树平均值的节点数
给你一棵二叉树的根节点 root ,找出并返回满足要求的节点数,要求节点的值等于其 子树 中值的 平均值 。注意:n 个元素的平均值可以由 n 个元素 求和 然后再除以 n ,并 向下舍入 到最近的整数。root 的 子树 由 root 和它的所有后代组成。 示例 1:输入:root = [4,8,5,0,1,null,6]输出:5解释:对值为 4 的节点:子树的平均值 (4 + 8 + 5 + 0 + 1 + 6) / 6 = 24 / 6 = 4 。对值为 5 的节点:子.原创 2022-05-09 00:07:59 · 415 阅读 · 0 评论 -
leetcode 找到所有的农场组(C++、java、python)
给你一个下标从0开始,大小为m x n的二进制矩阵land,其中0表示一单位的森林土地,1表示一单位的农场土地。为了让农场保持有序,农场土地之间以矩形的农场组的形式存在。每一个农场组都仅包含农场土地。且题目保证不会有两个农场组相邻,也就是说一个农场组中的任何一块土地都不会与另一个农场组的任何一块土地在四个方向上相邻。land可以用坐标系统表示,其中land左上角坐标为(0, 0),右下角坐标为(m-1, n-1)。请你找到所有农场组最左上角和最右下角的...原创 2021-09-04 23:47:47 · 532 阅读 · 0 评论 -
leetcode 797. 所有可能的路径(C++、java)
给你一个有n个节点的有向无环图(DAG),请你找出所有从节点0到节点n-1的路径并输出(不要求按特定顺序)二维数组的第i个数组中的单元都表示有向图中i号节点所能到达的下一些节点,空就是没有下一个结点了。译者注:有向图是有方向的,即规定了 a→b 你就不能从 b→a 。示例 1:输入:graph = [[1,2],[3],[3],[]]输出:[[0,1,3],[0,2,3]]解释:有两条路径 0 -> 1 -> 3 和 0 -> 2 -&g...原创 2021-08-31 00:19:29 · 336 阅读 · 0 评论 -
leetcode 1905. 统计子岛屿(C++、java、python)
给你两个m x n的二进制矩阵grid1和grid2,它们只包含0(表示水域)和1(表示陆地)。一个岛屿是由四个方向(水平或者竖直)上相邻的1组成的区域。任何矩阵以外的区域都视为水域。如果grid2的一个岛屿,被grid1的一个岛屿完全包含,也就是说grid2中该岛屿的每一个格子都被grid1中同一个岛屿完全包含,那么我们称grid2中的这个岛屿为子岛屿。请你返回grid2中子岛屿的数目。示例 1:输入:gri...原创 2021-06-27 00:07:55 · 325 阅读 · 1 评论 -
leetcode 967. 连续差相同的数字(C++)
返回所有长度为N且满足其每两个连续位上的数字之间的差的绝对值为K的非负整数。请注意,除了数字0本身之外,答案中的每个数字都不能有前导零。例如,01因为有一个前导零,所以是无效的;但0是有效的。你可以按任何顺序返回答案。示例 1:输入:N = 3, K = 7输出:[181,292,707,818,929]解释:注意,070 不是一个有效的数字,因为它有前导零。示例 2:输入:N = 2, K = 1输出:[10,12,21,23,32,34,43,...原创 2020-10-09 00:06:21 · 330 阅读 · 0 评论 -
leetcode 水域大小(C++)
你有一个用于表示一片土地的整数矩阵land,该矩阵中每个点的值代表对应地点的海拔高度。若值为0则表示水域。由垂直、水平或对角连接的水域为池塘。池塘的大小是指相连接的水域的个数。编写一个方法来计算矩阵中所有池塘的大小,返回值需要从小到大排序。示例:输入:[ [0,2,1,0], [0,1,0,1], [1,1,0,1], [0,1,0,1]]输出: [1,2,4]提示:0 < len(land) <= 1000 0 < len(land[i]) &原创 2020-10-07 13:55:54 · 1683 阅读 · 0 评论 -
leetcode 5366. 检查网格中是否存在有效路径(C++)
给你一个mxn的网格grid。网格里的每个单元都代表一条街道。grid[i][j]的街道可以是:1表示连接左单元格和右单元格的街道。 2表示连接上单元格和下单元格的街道。 3表示连接左单元格和下单元格的街道。 4表示连接右单元格和下单元格的街道。 5表示连接左单元格和上单元格的街道。 6表示连接右单元格和上单元格的街道。你最开始从左上角的单元格(0,0...原创 2020-03-22 21:15:49 · 349 阅读 · 0 评论 -
牛客网——机器人的运动范围(C++)
地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。 例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7 = 18。但是,它不能进入方格(35,38),因为3+5+3+8 = 19。请问该机器人能够达到多少个格子?C++class Solution {pub...原创 2020-01-15 12:58:39 · 254 阅读 · 0 评论 -
leetcode 1219. 黄金矿工(C++)
你要开发一座金矿,地质勘测学家已经探明了这座金矿中的资源分布,并用大小为m * n的网格grid进行了标注。每个单元格中的整数就表示这一单元格中的黄金数量;如果该单元格是空的,那么就是0。为了使收益最大化,矿工需要按以下规则来开采黄金:每当矿工进入一个单元,就会收集该单元格中的所有黄金。 矿工每次可以从当前位置向上下左右四个方向走。 每个单元格只能被开采(进入)一次。 不得...原创 2019-12-03 13:01:56 · 748 阅读 · 0 评论 -
leetcode 1254. 统计封闭岛屿的数目(C++、python)
有一个二维矩阵grid,每个位置要么是陆地(记号为0)要么是水域(记号为1)。我们从一块陆地出发,每次可以往上下左右4 个方向相邻区域走,能走到的所有陆地区域,我们将其称为一座「岛屿」。如果一座岛屿完全由水域包围,即陆地边缘上下左右所有相邻区域都是水域,那么我们将其称为 「封闭岛屿」。请返回封闭岛屿的数目。示例 1:输入:grid = [[1,1,...原创 2019-11-10 18:02:57 · 423 阅读 · 0 评论 -
leetcode 638. 大礼包(C++、python)
在LeetCode商店中, 有许多在售的物品。然而,也有一些大礼包,每个大礼包以优惠的价格捆绑销售一组物品。现给定每个物品的价格,每个大礼包包含物品的清单,以及待购物品清单。请输出确切完成待购清单的最低花费。每个大礼包的由一个数组中的一组数据描述,最后一个数字代表大礼包的价格,其他数字分别表示内含的其他种类物品的数量。任意大礼包可无限次购买。示例 1:输入: [2,5],...原创 2019-07-22 20:38:03 · 500 阅读 · 0 评论 -
leetcode 735. 行星碰撞(C++、python)
给定一个整数数组asteroids,表示在同一行的行星。对于数组中的每一个元素,其绝对值表示行星的大小,正负表示行星的移动方向(正表示向右移动,负表示向左移动)。每一颗行星以相同的速度移动。找出碰撞后剩下的所有行星。碰撞规则:两个行星相互碰撞,较小的行星会爆炸。如果两颗行星大小相同,则两颗行星都会爆炸。两颗移动方向相同的行星,永远不会发生碰撞。示例 1:输入: asteroi...原创 2019-07-23 19:16:46 · 500 阅读 · 0 评论 -
leetcode 1101. 彼此熟识的最早时间(C++)
在一个社交圈子当中,有N个人。每个人都有一个从0到N-1唯一的 id编号。我们有一份日志列表logs,其中每条记录都包含一个非负整数的时间戳,以及分属两个人的不同id,logs[i] = [timestamp, id_A, id_B]。每条日志标识出两个人成为好友的时间,友谊是相互的:如果 A 和 B 是好友,那么 B 和 A 也是好友。如果 A 是 B 的好友,或者...原创 2019-06-30 00:11:33 · 431 阅读 · 0 评论 -
leetcode 863. 二叉树中所有距离为 K 的结点(C++)
给定一个二叉树(具有根结点root),一个目标结点target,和一个整数值K。返回到目标结点target距离为K的所有结点的值的列表。 答案可以以任何顺序返回。示例 1:输入:root = [3,5,1,6,2,0,8,null,null,7,4], target = 5, K = 2输出:[7,4,1]解释:所求结点为与目标结点(值为 5)距离...原创 2019-07-04 19:56:44 · 502 阅读 · 0 评论 -
leetcode 990. 等式方程的可满足性(C++)
给定一个由表示变量之间关系的字符串方程组成的数组,每个字符串方程equations[i]的长度为4,并采用两种不同的形式之一:"a==b"或"a!=b"。在这里,a 和 b 是小写字母(不一定不同),表示单字母变量名。只有当可以将整数分配给变量名,以便满足所有给定的方程时才返回true,否则返回false。示例 1:输入:["a==b","b!=a"]输出:f...原创 2019-06-11 19:16:53 · 422 阅读 · 0 评论 -
LeetCode 1020. 飞地的数量(C++、python)
给出一个二维数组A,每个单元格为 0(代表海)或 1(代表陆地)。移动是指在陆地上从一个地方走到另一个地方(朝四个方向之一)或离开网格的边界。返回网格中无法在任意次数的移动中离开网格边界的陆地单元格的数量。示例 1:输入:[[0,0,0,0],[1,0,1,0],[0,1,1,0],[0,0,0,0]]输出:3解释: 有三个 1 被 0 包围。一个 1 没有被包围,...原创 2019-04-04 16:46:09 · 265 阅读 · 0 评论 -
LeetCode 841. 钥匙和房间(C、C++、python)
有N个房间,开始时你位于0号房间。每个房间有不同的号码:0,1,2,...,N-1,并且房间里可能有一些钥匙能使你进入下一个房间。在形式上,对于每个房间i都有一个钥匙列表rooms[i],每个钥匙rooms[i][j]由[0,1,...,N-1]中的一个整数表示,其中N = rooms.length。 钥匙rooms[i][j] = v可以打开编号为v的房间。...原创 2019-03-23 11:34:31 · 620 阅读 · 0 评论