| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> Leetcode1466. 重新规划路线(mediumBFS) -> 正文阅读 |
|
[数据结构与算法]Leetcode1466. 重新规划路线(mediumBFS) |
目录 1. 问题描述
今年,城市 0 将会举办一场大型比赛,很多游客都想前往城市 0 。 请你帮助重新规划路线方向,使每个城市都可以访问城市 0 。返回需要变更方向的最小路线数。 题目数据?保证?每个城市在重新规划路线方向后都能到达城市 0 。 示例 1: 输入:n = 6, connections = [[0,1],[1,3],[2,3],[4,0],[4,5]] 输出:3 解释:更改以红色显示的路线的方向,使每个城市都可以到达城市 0 。 示例 2: 输入:n = 5, connections = [[1,0],[1,2],[3,2],[3,4]] 输出:2 解释:更改以红色显示的路线的方向,使每个城市都可以到达城市 0 。 示例 3: 输入:n = 3, connections = [[1,0],[2,0]] 输出:0 提示:
来源:力扣(LeetCode) 2. 解题分析????????问题描述中的“路线网形成一颗树”是啥意思?从所举例来看,并不是树的样子啊。比如说,从示例1来看,节点2和节点4都是“根”。。。多个“根”还叫树吗?那不是应该叫森林吗? ? ? ? ? 如果只是需要让每个节点都能到达节点0而翻转边的方向的话,(把图看作是一个无向图)从节点0出发以深度优先或者广度优先搜索的方式遍历每个节点,将需要反向的边执行反向操作即可。 ????????问题是如何证明这样即保证了反向边数最少呢? ????????connections是edge列表,可以先基于edge列表建立邻接表以方便搜索。 ? ? ? ? 此外,由于需要反复查询搜索过程中所碰到的边的方向,而list的查询效率非常低,可以先将connections转变为tuple集合,以方便高效查询。? ???????? 3. 代码实现
????????执行用时:308 ms, 在所有?Python3?提交中击败了74.29%的用户 ????????内存消耗:36.1 MB, 在所有?Python3?提交中击败了63.43%的用户 ????????回到主目录:笨牛慢耕的Leetcode每日一解题解笔记(动态更新。。。)? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 7:30:46- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |