随笔分类 - 图
摘要:2022-06-26 15:43:28 问题描述: 存在一棵无向连通树,树中有编号从 0 到 n - 1 的 n 个节点, 以及 n - 1 条边。 给你一个下标从 0 开始的整数数组 nums ,长度为 n ,其中 nums[i] 表示第 i 个节点的值。另给你一个二维整数数组 edges ,长度
阅读全文
摘要:2022-06-11 21:07:12 问题描述: 给你一个下标从 0 开始的二维整数数组 grid ,数组大小为 m x n 。每个单元格都是两个值之一: 0 表示一个 空 单元格,1 表示一个可以移除的 障碍物 。你可以向上、下、左、右移动,从一个空单元格移动到另一个空单元格。 现在你需要从左上
阅读全文
摘要:2020-09-26 15:51:22 一、定义 割点:无向连通图中,某点和其连接的边去除后,图不再连通 桥:无向连通图中,某边去除后,图不再连通 二、Tarjan算法 Tarjan算法可以在一次dfs中得到所有的割点和割边。 time: 时间戳 dfn[]: dfs第一次遍历到的时间戳 low[]
阅读全文
摘要:2020-04-06 18:45:31 问题描述: 有一个无向无环连通图,每条边通过两个顶点x[i],y[i]来描述,每条边的长度通过d[i]来描述。求这样的一个点p,使得其他点到p的距离和最小,如果有多个这样的点p,返回编号最小的。 样例 样例 1: 给出 x = `[1]`, y = `[2]`
阅读全文
摘要:2020-04-04 19:46:42 问题描述: 你有 4 张卡片, 每一张上面都有一个 1 到 9 的数字. 你需要判断是否能用运算符 *, /, +, -, (, ) 来计算得到 24 样例 样例 1: 输入:[1, 4, 8, 7] 输出:true 解释:8 * (7 - 4) * 1 =
阅读全文
摘要:2020-04-04 18:25:18 问题描述: 给定一个0和1的非空的二维数组网格,一个岛是一个1(表示陆地)的组,4个方向(水平或垂直)连接。你可以假设网格的所有四条边都被水包围。计算不同岛屿的数量。当一个岛被认为与另一个岛相同时,它们有相同的形状,或在旋转后的形状相同(90,180,或270
阅读全文
摘要:2020-04-04 14:14:22 问题描述: 在迷宫中有一个球,里面有空的空间和墙壁。球可以通过滚上,下,左或右移动,但它不会停止滚动直到撞到墙上。当球停止时,它可以选择下一个方向。 给定球的起始位置,目标和迷宫,找到最短距离的球在终点停留。距离是由球从起始位置(被排除)到目的地(包括)所走过
阅读全文
摘要:2020-04-01 11:33:32 问题描述: 给定一个n×m矩阵arr,矩阵中的路径定义为从(0, 0) 走到 (n-1, m-1) 且只能往下和往右走。对于每一条路径都有一个goal,goal等于这条路径上经过的所有数的异或。 现在你需要找到有多少条路径上的goal等于target,返回这个
阅读全文
摘要:2020-03-24 22:23:32 问题描述: 编写一个程序,通过已填充的空格来解决数独问题。 一个数独的解法需遵循如下规则: 数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。空白格用 '.' 表示。 一个数
阅读全文
摘要:2020-03-17 21:56:20 问题描述: 病毒扩散得很快,现在你的任务是尽可能地通过安装防火墙来隔离病毒。 假设世界由二维矩阵组成,0 表示该区域未感染病毒,而 1 表示该区域已感染病毒。可以在任意 2 个四方向相邻单元之间的共享边界上安装一个防火墙(并且只有一个防火墙)。 每天晚上,病毒
阅读全文
摘要:2020-03-15 19:49:59 问题描述: n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。 上图为 8 皇后问题的一种解法。 给定一个整数 n,返回所有不同的 n 皇后问题的解决方案。 每一种解法包含一个明确的 n 皇后问题的棋子放置方案,该
阅读全文
摘要:2020-03-15 16:41:45 问题描述: 给定一个包含了一些 0 和 1的非空二维数组 grid , 一个 岛屿 是由四个方向 (水平或垂直) 的 1 (代表土地) 构成的组合。你可以假设二维矩阵的四个边缘都被水包围着。 找到给定的二维数组中最大的岛屿面积。(如果没有岛屿,则返回面积为0。
阅读全文
摘要:2020-03-14 12:22:08 问题描述: 给出一些Connections,即Connections类,找到一些能够将所有城市都连接起来并且花费最小的边。如果说可以将所有城市都连接起来,则返回这个连接方法;不然的话返回一个空列表。 样例 样例 1: 输入: ["Acity","Bcity",
阅读全文
摘要:2020-03-01 22:59:59 问题描述: 给你一个 m x n 的网格图 grid 。 grid 中每个格子都有一个数字,对应着从该格子出发下一步走的方向。 grid[i][j] 中的数字可能为以下几种情况: 1 ,下一步往右走,也就是你会从 grid[i][j] 走到 grid[i][j
阅读全文
摘要:2020-02-19 13:34:28 问题描述: 问题求解: 判定方式就是采用层序遍历,对于一个完全二叉树来说,访问每个非空节点之前都不能访问过null。 public boolean isCompleteTree(TreeNode root) { if (root == null) return
阅读全文
摘要:2020-01-30 22:22:58 问题描述: 问题求解: 解法一:floyd 这个题目一看就是floyd解最合适,因为是要求多源最短路,floyd算法是最合适的,时间复杂度为O(n ^ 3)。 int inf = (int)1e9; public int findTheCity(int n,
阅读全文
摘要:2019-11-03 21:37:59 一、Diameter of Binary Tree 问题描述: 问题求解: 解法一、第一反应是树上动归,每个节点保存一下左右的最大深度,最后以每个节点作为中枢计算最大的长度即可。 解法二、不求直径,而是转求每个节点的最大深度,遍历的时候可以顺便得到直径。 二、
阅读全文
摘要:2019-10-05 23:40:13 一、定义 割点:去掉一个顶点及其相邻的边,图的连通分量增加。 割边:去掉一条边,图的连通分量增加。 两者关系 有割点不一定有割边,有割边一定存在割点 割边一定是割点依附的边 如下图,点C是割点,但是图中不存在割边。 二、Tarjan算法 使用Tarjan算法可
阅读全文
摘要:2019-03-28 15:25:43 问题描述: 问题求解: 写过的最好的Hard题之一。 初看本题,很经典的路径和嘛,dfs一遍肯定可以得到某个节点到其他所有节点的距离和。这种算法的时间复杂度是O(n ^ 2)。看一下数据量,emmm,果然不行。这个数据量一看就知道只能是O(n)的算法了。 只遍
阅读全文
摘要:2019-03-27 15:53:38 问题描述: 问题求解: 很有意思的题目。充分体现了二叉树的自底向上的递归思路。 自底向上进行运算,对于最底层的二叉子树,我们需要计算每个节点向其parent传送多余的硬币数量,不论正负,都是需要占用move数量的。自此递归的进行计数即可。
阅读全文