python语音规划路线_重新规划路线(python)
问题描述
n 座城市,从 0 到 n-1 编号,其间共有 n-1 条路线。因此,要想在两座不同城市之间旅行只有唯一一条路线可供选择(路线网形成一颗树)。去年,交通运输部决定重新规划路线,以改变交通拥堵的状况。
路线用 connections 表示,其中 connections[i] = [a, b] 表示从城市 a 到 b 的一条有向路线。
今年,城市 0 将会举办一场大型比赛,很多游客都想前往城市 0 。
请你帮助重新规划路线方向,使每个城市都可以访问城市 0 。返回需要变更方向的最小路线数。
题目数据 保证 每个城市在重新规划路线方向后都能到达城市 0 。
例子
image.png
思路:类似广度优先搜索的思想,从初始节点开始,然后遍历与其相邻的节点,然后再遍历这些节点的相邻节点。而这题遍历的时候去考虑边的情况,如果该边指向的是他前一个节点,则符合,反之,则不符合,需要变更方向。
python实现:
1,队列(超出时间限制)
class Solution:
def minReorder(self, n: int, connections: List[List[int]]) -> int:
c=connections
que=[0]#存储需要遍历的节点
res=0
while que: #判断节点是否全部遍历完
x=que.pop() #出队列
k=0
while k
if c[k][1]==x: #边指向之前节点
que.append(c[k][0]) #加入下一节点
c.pop(k) #将遍历的边删除
continue #继续下一次遍历
elif c[k][0]==x:
res+=1 #变更次数加一
que.append(c[k][1])
c.pop(k)
continue
k+=1
return res
改进第一种方法
class Solution:
def minReorder(self, n: int, connections: List[List[int]]) -> int:
c=connections
ans = 0
now = {0} #存储需要遍历的节点的集合
while len(now) != n: #判断集合长度是否达到n
new = set() #新建集合
i = 0
while i < len(c): #遍历存储边的列表
if c[i][1] in now:
new.add(c[i][0])#将下次要遍历的节点保存起来
c.pop(i) #删除边
continue
elif c[i][0] in now:
ans += 1
new.add(c[i][1])
c.pop(i)
continue
i += 1
now |= new #将集合new加进集合now中
return ans
继续改进
class Solution:
def minReorder(self, n: int, connections: List[List[int]]) -> int:
res = 0
ordered_set = {0} # 保存已经能正确到达0的城市
for (l, r) in connections:
if r in ordered_set: # r是已经能到0的城市,那么l->r后就可到0
ordered_set.add(l)
elif l in ordered_set: # r目前不可到城市0,l可到,那就让r->l后到0,重修+1
res += 1
ordered_set.add(r)
return res
python语音规划路线_重新规划路线(python)相关推荐
- python程序员培训_推荐给未来Python程序员的自学路线,不再背负小白名称
Python彻底火了之后,各种培训机构各和学校也不断加大对Python的培训力度,很多程序员学习Python都会选择去学校或公司培训.培训机构学习,但是不是每个喜欢Python编程的程序员都是可以交得 ...
- python语音输入功能_“在Python中如何实现一点按钮就出现语音输入语音,输入语音后可以自动翻译为文字的程序?“python语音识别教程...
Python用什么模块开发语音识别系统 使用YQ5969,这个语音识别模以支持1--8个咪头,还可以支持本地和识别不同需求.5米内本地识别 93%以上,云端识别率97%.这个语音识别模块可以滤除噪声. ...
- 高考python必考题目_假如高考考python编程,这些题目你会几个呢?
Python(发音:英[?pa?θ?n],美[?pa?θɑ:n]),是一种面向对象.直译式电脑编程语言,也是一种功能强大的通用型语言,已经具有近二十年的发展历史,成熟且稳定.它包含了一组完善而且容易理 ...
- python怎么打日志_怎样调试 日志 python 代码
展开全部 使用 pdb 进行调试 pdb 是 python 自带e5a48de588b662616964757a686964616f31333361306366的一个包,为 python 程序提供了一 ...
- c++中的引用和python中的引用_对比 C++ 和 Python,谈谈指针与引用
作者 | 樱雨楼 引言 指针(Pointer)是 C.C++ 以及 Java.Go 等语言的一个非常核心且重要的概念,而引用(Reference)是在指针的基础上构建出的一个同样重要的概念. 指针对于 ...
- python常用库教程_这几个python常用的库你必须知道!
随着人工智能时代的到来,python变得更加流行.受欢迎,功能强大.简单易学.容易入门.应用广泛等,掀起了学习热潮,现在越来越多人转行都会学习python语言.为了让大家快速掌握python,今天为大 ...
- python入门第一课_入门第一课 Python入门涉及的问题及简单示例
很多初学者都在问:我想自学Python,该怎样入门?入门选择哪些书籍? 下面,我以自己的理解作出解答. 1.先说明大体的学习进度. Python确实入门较为容易,语法清晰易懂.一旦入了门再想提高就和其 ...
- python国内书籍推荐_这些都是Python官方推荐的最好的书籍
转行学Python有前途吗?这个答案是肯定的,AI课程都已经进入小学教材了,未来Python趋势无疑是光明的,但是如何学习Python,很多Python小白都来问小编有什么适合的Python入门书籍推 ...
- python编码转换语句_好程序员Python教程之字符串编码知识小结
好程序员Python教程之字符串编码知识小结,提及Python字符串,你会想到什么?是ASCII,还是Unicode?他们之间是如何转换的?字符串编码和字符串有什么区别?接下来好程序员Python教程 ...
- python画日漫_不能错过的Python漫画
原标题:不能错过的Python漫画 漫画内容取自: http://kaltap.com/2015/11/28/9-python-cartoons/ 翻译: 诗书塞外 Python部落()组织翻译, 禁 ...
最新文章
- 2021年大数据Flink(三十八):​​​​​​​Table与SQL ​​​​​​案例五 FlinkSQL整合Hive
- 在C#代码中获取Silverlight的初始化initparams参数
- logback的简单使用
- javascript之DOM总结
- [Postgres]Postgres复制表
- 开发缺点_开发移动端手机APP有哪些优缺点?
- 存储维护和服务器的区别,存储服务器和普通服务器区别是什么? 你想知道吗服务器类型一般是什么...
- iostat linux,iostat 命令详解
- Web SCADA 电力接线图工控组态编辑器 1
- 23种设计模式(六)单一职责之桥模式
- 美国新泽西州,也有一个Menlo Park——门洛公园,尽管不太为人熟知,但爱迪生那里的一个发明却点亮了全世界。...
- javaMD5加密生成key方法
- 有哪些盛极一时的互联网产品,现在都没落了?
- QT图形显示和处理6
- 为什么“家徒四壁”中的徒是仅仅,只有的意思?
- 微信小程序如何关联视频号直播
- VC(Visual Studio C++)虚拟键VK值列表
- 深富策略军工股掀起涨停潮
- 生命早期肠道微生物组和疫苗功效
- LeetCode—494. 目标和(Target Sum)——分析及代码(Java)