![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
图
豌豆射手GCC
这个作者很懒,什么都没留下…
展开
-
图+最小字典序遍历 332. 重新安排行程
332. 重新安排行程给定一个机票的字符串二维数组 [from, to],子数组中的两个成员分别表示飞机出发和降落的机场地点,对该行程进行重新规划排序。所有这些机票都属于一个从JFK(肯尼迪国际机场)出发的先生,所以该行程必须从 JFK 出发。说明:如果存在多种有效的行程,你可以按字符自然排序返回最小的行程组合。例如,行程 [“JFK”, “LGA”] 与 [“JFK”, “LGB”] 相比就更小,排序更靠前所有的机场都用三个大写字母表示(机场代码)。假定所有机票至少存在一种合理的行程。示例 1原创 2020-06-21 13:04:31 · 224 阅读 · 0 评论 -
拓扑排序+BFS+入度 310. 最小高度树
310. 最小高度树对于一个具有树特征的无向图,我们可选择任何一个节点作为根。图因此可以成为树,在所有可能的树中,具有最小高度的树被称为最小高度树。给出这样的一个图,写出一个函数找到所有的最小高度树并返回他们的根节点。格式该图包含 n 个节点,标记为 0 到 n - 1。给定数字 n 和一个无向边 edges 列表(每一个边都是一对标签)。你可以假设没有重复的边会出现在 edges 中。由于所有的边都是无向边, [0, 1]和 [1, 0] 是相同的,因此不会同时出现在 edges 里。示例 1:原创 2020-06-11 11:38:46 · 191 阅读 · 0 评论 -
并查集+连通子图 547. 朋友圈
547. 朋友圈班上有 N 名学生。其中有些人是朋友,有些则不是。他们的友谊具有是传递性。如果已知 A 是 B 的朋友,B 是 C 的朋友,那么我们可以认为 A 也是 C 的朋友。所谓的朋友圈,是指所有朋友的集合。给定一个 N * N 的矩阵 M,表示班级中学生之间的朋友关系。如果M[i][j] = 1,表示已知第 i 个和 j 个学生互为朋友关系,否则为不知道。你必须输出所有学生中的已知的朋友圈总数。示例 1:输入: [[1,1,0], [1,1,0], [0,0,1]]输出: 2 说原创 2020-05-31 14:20:01 · 841 阅读 · 0 评论 -
拓扑排序+判断环 207. 课程表
207. 课程表你这个学期必须选修 numCourse 门课程,记为 0 到 numCourse-1 。在选修某些课程之前需要一些先修课程。 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示他们:[0,1]给定课程总量以及它们的先决条件,请你判断是否可能完成所有课程的学习?示例 1:输入: 2, [[1,0]] 输出: true解释: 总共有 2 门课程。学习课程 1 之前,你需要完成课程 0。所以这是可能的。示例 2:输入: 2, [[1,0],[0,1]]输出原创 2020-05-29 11:12:45 · 118 阅读 · 0 评论 -
旋转+连通图 189. 旋转数组
189. 旋转数组给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。示例 1:输入: [1,2,3,4,5,6,7] 和 k = 3输出: [5,6,7,1,2,3,4]解释:向右旋转 1 步: [7,1,2,3,4,5,6]向右旋转 2 步: [6,7,1,2,3,4,5]向右旋转 3 步: [5,6,7,1,2,3,4]示例 2:输入: [-1,-100,3,99] 和 k = 2输出: [3,99,-1,-100]解释:向右旋转 1 步: [99,-1原创 2020-05-28 14:02:25 · 125 阅读 · 0 评论 -
深拷贝 138. 复制带随机指针的链表 ( 类似克隆图133)
138. 复制带随机指针的链表给定一个链表,每个节点包含一个额外增加的随机指针,该指针可以指向链表中的任何节点或空节点。要求返回这个链表的 深拷贝。我们用一个由 n 个节点组成的链表来表示输入/输出中的链表。每个节点用一个 [val, random_index] 表示:val:一个表示 Node.val 的整数。random_index:随机指针指向的节点索引(范围从 0 到 n-1);如果不指向任何节点,则为 null 。DFS+递归实现深拷贝/*// Definition for a原创 2020-05-22 16:26:41 · 143 阅读 · 0 评论 -
连通图的遍历+深拷贝 BFS+DFS 133. 克隆图
133. 克隆图给你无向 连通 图中一个节点的引用,请你返回该图的 深拷贝(克隆)。图中的每个节点都包含它的值 val(int) 和其邻居的列表(list[Node])。class Node { public int val; public List<Node> neighbors;} 测试用例格式:简单起见,每个节点的值都和它的索引相同。例如,第一个节点值为 1(val = 1),第二个节点值为 2(val = 2),以此类推。该图在测试用例中使用邻接列表表示。原创 2020-05-22 12:24:43 · 286 阅读 · 0 评论 -
拓扑排序+图的遍历 210. 课程表 II
现在你总共有 n 门课需要选,记为 0 到 n-1。在选修某些课程之前需要一些先修课程。 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示他们: [0,1]给定课程总量以及它们的先决条件,返回你为了学完所有课程所安排的学习顺序。可能会有多个正确的顺序,你只要返回一种就可以了。如果不可能完成所有课程,返回一个空数组。示例 1:输入: 2, [[1,0]] 输出: [0,1]解释: 总共有 2 门课程。要学习课程 1,你需要先完成课程 0。因此,正确的课程顺序为 [0,1]原创 2020-05-17 13:08:05 · 230 阅读 · 0 评论 -
图+最大连通子集个数求交换次数+哈希+贪心 765. 情侣牵手
765. 情侣牵手N 对情侣坐在连续排列的 2N 个座位上,想要牵到对方的手。 计算最少交换座位的次数,以便每对情侣可以并肩坐在一起。 一次交换可选择任意两人,让他们站起来交换座位。人和座位用 0 到 2N-1 的整数表示,情侣们按顺序编号,第一对是 (0, 1),第二对是 (2, 3),以此类推,最后一对是 (2N-2, 2N-1)。这些情侣的初始座位 row[i] 是由最初始坐在第 i...原创 2020-05-07 11:48:08 · 351 阅读 · 0 评论 -
判断图是否连通+判断图是否有环+并集得到最深叶节点 1021 Deepest Root (25分)
1021 Deepest Root (25分)A graph which is connected and acyclic can be considered a tree. The height of the tree depends on the selected root. Now you are supposed to find the root that results in a hi...原创 2020-04-29 12:46:00 · 195 阅读 · 0 评论 -
双向图链式存储+统计最大连通子图 +多输出输出 1013 Battle Over Cities (25分)
1013 Battle Over Cities (25分)It is vitally important to have all the cities connected by highways in a war. If a city is occupied by the enemy, all the highways from/toward that city are closed. We m...原创 2020-04-25 16:53:22 · 151 阅读 · 0 评论 -
AOE 拓扑排序+求最短工期+求各边的机动时间+得到关键路径 08-图9 关键活动 (30分)
08-图9 关键活动 (30分)假定一个工程项目由一组子任务构成,子任务之间有的可以并行执行,有的必须在完成了其它一些子任务后才能执行。“任务调度”包括一组子任务、以及每个子任务可以执行所依赖的子任务集。比如完成一个专业的所有课程学习和毕业设计可以看成一个本科生要完成的一项工程,各门课程可以看成是子任务。有些课程可以同时开设,比如英语和C程序设计,它们没有必须先修哪门的约束;有些课程则不可以同...原创 2020-04-15 00:11:20 · 3165 阅读 · 0 评论 -
C 最小生成树 + Prim算法 08-图7 公路村村通 (30分)
08-图7 公路村村通 (30分)现有村落间道路的统计数据表中,列出了有可能建设成标准公路的若干条道路的成本,求使每个村落都有公路连通所需要的最低成本。输入格式:输入数据包括城镇数目正整数N(≤1000)和候选道路数目M(≤3N);随后的M行对应M条道路,每行给出3个正整数,分别是该条道路直接连通的两个城镇的编号以及该道路改建的预算成本。为简单起见,城镇从1到N编号。输出格式:输出村村通...原创 2020-04-14 14:51:39 · 405 阅读 · 0 评论 -
C 拓扑排序+求总工期时长 08-图8 How Long Does It Take (25分)
08-图8 How Long Does It Take (25分)Given the relations of all the activities of a project, you are supposed to find the earliest completion time of the project.Input Specification:Each input file con...原创 2020-04-14 14:41:09 · 240 阅读 · 0 评论 -
最小生成树 Prim算法 Kruskal算法
最小生成树的特征树的特征:1.无回路2.V个顶点有V-1条边生成树的特征:1.包含树的所有顶点2.V-1条边都在图里最小:边的权重和最小Prim算法每次找到树外面的边权值最小的结点;将该结点加入树内;关键点找结点时需要同时满足1.只能用图里已有的边连接结点2.只能正好用掉V-1条边3.加入新的结点后不能有回路出现解决办法如何判断结点是否收录进树中:收录后的结点与树...原创 2020-04-14 14:20:32 · 166 阅读 · 0 评论 -
C Dijkstra+结点权值+边权值+统计边数+统计最短路径个数+保存路径 1087 All Roads Lead to Rome (30分)
1087 All Roads Lead to Rome (30分)Indeed there are many different tourist routes from our city to Rome. You are supposed to find your clients the route with the least cost while gaining the most happi...原创 2020-04-12 13:25:45 · 296 阅读 · 0 评论 -
C Dijkstra算法 多次使用 1072 Gas Station (30分)
1072 Gas Station (30分)A gas station has to be built at such a location that the minimum distance between the station and any of the residential housing is as far away as possible. However it must gua...原创 2020-04-11 22:26:17 · 176 阅读 · 0 评论 -
C Dijkstra拓展 含结点权重 1003 Emergency (25分)
1003 Emergency (25分)As an emergency rescue team leader of a city, you are given a special map of your country. The map shows several scattered cities connected by some roads. Amount of rescue teams i...原创 2020-04-11 14:59:58 · 133 阅读 · 0 评论 -
C Dijkstra 算法 floyd算法 拓展 07-图6 旅游规划 (25分)
07-图6 旅游规划 (25分)有了一张自驾旅游路线图,你会知道城市间的高速公路长度、以及该公路要收取的过路费。现在需要你写一个程序,帮助前来咨询的游客找一条出发地和目的地之间的最短路径。如果有若干条路径都是最短的,那么需要输出最便宜的一条路径。输入格式:输入说明:输入数据的第1行给出4个正整数N、M、S、D,其中N(2≤N≤500)是城市的个数,顺便假设城市的编号为0~(N−1);M是高速...原创 2020-04-10 21:38:48 · 1071 阅读 · 0 评论 -
C BFS+无权最短路径记录 07-图5 Saving James Bond - Hard Version (30分)
07-图5 Saving James Bond - Hard Version (30分)This time let us consider the situation in the movie “Live and Let Die” in which James Bond, the world’s most famous spy, was captured by a group of drug d...原创 2020-04-10 15:33:51 · 133 阅读 · 0 评论 -
C Floyd算法 邻接矩阵表示图 07-图4 哈利·波特的考试 (25分)
07-图4 哈利·波特的考试 (25分)哈利·波特要考试了,他需要你的帮助。这门课学的是用魔咒将一种动物变成另一种动物的本事。例如将猫变成老鼠的魔咒是haha,将老鼠变成鱼的魔咒是hehe等等。反方向变化的魔咒就是简单地将原来的魔咒倒过来念,例如ahah可以将老鼠变成猫。另外,如果想把猫变成鱼,可以通过念一个直接魔咒lalala,也可以将猫变老鼠、老鼠变鱼的魔咒连起来念:hahahehe。现在...原创 2020-04-09 21:44:51 · 334 阅读 · 0 评论 -
C 带有计数的BFS 数组存储图 1076 Forwards on Weibo (30分)
1076 Forwards on Weibo (30分)Weibo is known as the Chinese version of Twitter. One user on Weibo may have many followers, and may follow many other users as well. Hence a social network is formed with...原创 2020-04-09 13:34:41 · 96 阅读 · 1 评论 -
C 记录层数的BFS 06-图3 六度空间 (30分)
06-图3 六度空间 (30分)“六度空间”理论又称作“六度分隔(Six Degrees of Separation)”理论。这个理论可以通俗地阐述为:“你和任何一个陌生人之间所间隔的人不会超过六个,也就是说,最多通过五个人你就能够认识任何一个陌生人。”如图1所示。图1 六度空间示意图“六度空间”理论虽然得到广泛的认同,并且正在得到越来越多的应用。但是数十年来,试图验证这个理论始终是许多社...原创 2020-04-09 12:26:09 · 475 阅读 · 0 评论 -
C 06-图2 Saving James Bond - Easy Version (25分)
This time let us consider the situation in the movie “Live and Let Die” in which James Bond, the world’s most famous spy, was captured by a group of drug dealers. He was sent to a small piece of land ...原创 2020-04-09 01:23:47 · 162 阅读 · 0 评论 -
C 图的构建 简单的BFS和DFS 06-图1 列出连通集 (25分)
给定一个有N个顶点和E条边的无向图,请用DFS和BFS分别列出其所有的连通集。假设顶点从0到N−1编号。进行搜索时,假设我们总是从编号最小的顶点出发,按编号递增的顺序访问邻接点。输入格式:输入第1行给出2个整数N(0<N≤10)和E,分别是图的顶点数和边数。随后E行,每行给出一条边的两个端点。每行中的数字之间用1空格分隔。输出格式:按照格式,每行输出一个连通集。先输出DFS的结果,再...原创 2020-04-09 01:16:31 · 990 阅读 · 0 评论