当前位置: 首页 > news >正文

网站页面设计主要包括郑州网站建设易云巢

网站页面设计主要包括,郑州网站建设易云巢,邢台营销型网站建设费用,绍兴高新区建设网站力扣题目链接 给定一个机票的字符串二维数组 [from, to]#xff0c;子数组中的两个成员分别表示飞机出发和降落的机场地点#xff0c;对该行程进行重新规划排序。所有这些机票都属于一个从 JFK#xff08;肯尼迪国际机场#xff09;出发的先生#xff0c;所以该行程必须从…力扣题目链接 给定一个机票的字符串二维数组 [from, to]子数组中的两个成员分别表示飞机出发和降落的机场地点对该行程进行重新规划排序。所有这些机票都属于一个从 JFK肯尼迪国际机场出发的先生所以该行程必须从 JFK 开始。 提示 如果存在多种有效的行程请你按字符自然排序返回最小的行程组合。例如行程 [JFK, LGA] 与 [JFK, LGB] 相比就更小排序更靠前所有的机场都用三个大写字母表示机场代码。假定所有机票至少存在一种合理的行程。所有的机票必须都用一次 且 只能用一次。 解题思路 图的建模把航班信息建模为图其中城市为节点航班为边。构建邻接表来表示图。 排序对目的地进行字母排序确保在深度优先搜索中总是优先访问字母顺序靠前的目的地。 DFS遍历使用深度优先搜索遍历图从起始城市出发一直走到所有可能的目的地记录经过的城市。 路径重建由于深度优先搜索会使得路径顺序反向需要在结果列表中反转顺序以获得正确的行程。 这个方法有效地使用了排序和深度优先搜索来解决旅行路径问题保证了按照字母顺序访问目的地并生成正确的行程路径。 完整代码如下 class Solution:def findItinerary(self, tickets: List[List[str]]) - List[str]:self.adj {}# sort by the destination alphabetically# 根据航班每一站的重点字母顺序排序tickets.sort(keylambda x:x[1])# get all possible connection for each destination# 罗列每一站的下一个可选项for u,v in tickets:if u in self.adj: self.adj[u].append(v)else: self.adj[u] [v]# 从JFK出发self.result []self.dfs(JFK) # start with JFKreturn self.result[::-1] # reverse to get the resultdef dfs(self, s):# if depart city has flight and the flight can go to another citywhile s in self.adj and len(self.adj[s]) 0:# 找到s能到哪里选能到的第一个机场v self.adj[s][0] # we go to the 1 choice of the city# 在之后的可选项机场中去掉这个机场self.adj[s].pop(0) # get rid of this choice since we used it# 从当前的新出发点开始self.dfs(v) # we start from the new airportself.result.append(s) # after append, it will back track to last node, thus the result list is in reversed orderself.adj {}self.adj 用于存储每个城市的邻接表。邻接表是一个字典键是出发城市值是一个列表表示从该城市出发可以到达的目的城市。 tickets.sort(keylambda x: x[1])对 tickets 列表按照每个航班的目的地x[1]进行排序。这样做是为了在后续的处理过程中能优先选择字母顺序靠前的目的地。 for u, v in tickets:if u in self.adj:self.adj[u].append(v)else:self.adj[u] [v]遍历排序后的航班列表为每个出发城市 u 创建一个目的地列表。若 u 已经在 self.adj 字典中则将 v 加入到对应的列表中否则创建一个新的列表。 self.result [] self.dfs(JFK)初始化 self.result 列表用于存储最终的行程路径。调用 dfs 方法从起始城市 JFK 开始进行深度优先搜索。 def dfs(self, s):while s in self.adj and len(self.adj[s]) 0:v self.adj[s][0]self.adj[s].pop(0)self.dfs(v)self.result.append(s)在 dfs 方法中首先检查当前城市 s 是否有可用的航班即 s 是否在 self.adj 中且有目的地。如果有取出列表中的第一个目的地 v因为航班列表已按字母排序过选择第一个保证了字母顺序并从列表中删除这个目的地。然后递归调用 dfs 方法继续从 v 出发。递归完成后将当前城市 s 添加到 self.result 中。注意self.result 中的城市顺序是逆序的因为每次递归都会先处理后续的城市最后返回到当前城市。 return self.result[::-1]最后返回 self.result 的反转列表即按照正确的旅行顺序输出最终的行程路径。
http://www.hkea.cn/news/14367846/

相关文章:

  • 罗湖附近公司做网站建设哪家服务周到互联网开发工程师证书
  • 济南网站备案程序云南文山特产
  • 哈尔滨做设计和网站的公司吗莱芜临时工一天一结
  • 网站建设开发教程系统页面模板
  • 网站制作理念网页传奇游戏下载
  • 企业管理网站的来历wordpress备案号显示
  • 广州网站建设十年乐云seo县城网站怎样做经验
  • 东莞整站优化推广公司找火速电脑网站转换手机网站怎么做
  • 合肥建设网站哪家好阳朔到桂林大巴
  • 网站设计对网站建设有哪些意义?wordpress sqlite3
  • 那种自行提取卡密的网站怎么做wordpress app 功能
  • 自己动手做网站教程高职专业建设管理网站
  • 百度网站降权网站建设包含哪些费用
  • 京东网站建设步骤网站开发公司 苏州
  • ECMS做的网站建筑材料东莞网站建设
  • 网站首页制作公司亚马逊海外购官方网
  • 美妆网站怎么做杭州做网站的公司有哪些
  • 个人门户网站备案流程网站代理如何做
  • 网站自适应怎么做利用表格布局做网站步骤
  • 室内装修网站手机网站需要域名吗
  • 怎样做外贸网站建设深圳建筑设计公司
  • 国外网站做问卷网站设计的研究方法
  • 兰州网站建设优化网站开发服务合同印花税
  • 网站建设设计技巧1元2元店5元店进货渠道大全
  • 山西两学一做网站怎样做网络推广营销
  • 宁晋网站建设多少钱jsp开发网站
  • 直接进网站的浏览器专业网页制作什么好
  • 设计 网站访问次数怎样下载手机app
  • 遵义公司网站搭建多少钱山东新华电脑学院学网站开发
  • 阿里云网站申请用途怎么做pdf电子书下载网站