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

做购物网站需要什么网站页面分析作业

做购物网站需要什么,网站页面分析作业,太原网站建设制作,网站 详细设计题目 leetcode787. K 站中转内最便宜的航班 题目分析 给定一个城市图,每个城市通过航班与其他城市相连。每个航班都有一个起点、终点和价格。你需要找到从起点城市 src 到终点城市 dst 的最便宜路径,但这条路径最多只能经过 k 个中转站。你需要返回这…

题目

leetcode787. K 站中转内最便宜的航班

题目分析

给定一个城市图,每个城市通过航班与其他城市相连。每个航班都有一个起点、终点和价格。你需要找到从起点城市 src 到终点城市 dst 的最便宜路径,但这条路径最多只能经过 k 个中转站。你需要返回这种路径的最低价格,如果不存在这样的路径,则返回 -1。

输入:

n:城市的数量
flights:航班的列表,每个航班用 [fromi, toi, pricei] 表示,表示从城市 fromi 到城市 toi 的航班价格为 pricei
src:起点城市
dst:终点城市
k:最多经过的中转站数

输出:

最便宜的价格,如果没有满足条件的路径,则输出 -1

思路分析

我看到这道题第一时间想的就是dijkstra算法,因为我也不会别的算法。
对于k的限制,我想到可以在优先队列中维护一个当前层级的变量,当到达的层级大于k时,就不再扩展了。

但是我没考虑到k的限制可能会导致最短路径无法达成,并且由于dijkstra算法的性质,其他路线也被直接丢弃了

于是我尝试不使用visited数组记录访问过的节点,将每个节点的后继节点都加入队列中,只有层级大于k时,才会跳过。此时算法退化成了变体的广度优先搜索算法,会搜索每一条在中转数在k内的路径。

但是,当数据量大了之后,显然这个算法会超时。

继续思考,发现dijkstra算法找到的是最优路径,但是其中转节点可能很多,而真正的路径只可能在中转节点比最优路径少的路径里,其他中转节点多于最优路径的路径完全可以剪枝,因为他们的费用不可能更低。

按照这个思路,只需要维护一个每个节点的最小中转数,任何多于最小中转数的路径都可以剪枝,因为对于每一个被剪枝的路径来说,在其之前都已经有至少一条路径价格比它低的同时中转数还要小于它

代码

class Solution:def findCheapestPrice(self, n: int, flights: List[List[int]], src: int, dst: int, k: int) -> int:# 建立邻接表maps=[[]  for _ in range(n)]for edge in flights:maps[edge[0]].append(edge[1:])#最小堆模拟优先队列,(价格,节点编号,层级)pq=[(0,src,0)]#当前每个节点的中转数记录visit=[n+1]*nwhile pq:w,p,c=heappop(pq)#过滤超过层级k的节点,剪枝中转城市多余当前节点记录的点if c>=visit[p] or c>k+1:continueif  p == dst:return w# 直接等就可以,比它大的到不了这一步visit[p]=c# 将后继节点加入优先队列for point in maps[p]:heappush(pq,(w + point[1],point[0],c+1))return  -1

提交

一直交刷成绩QAQ
在这里插入图片描述


2024/8/8

http://www.khdw.cn/news/12339.html

相关文章:

  • 购物网站设计的意义seo和sem的联系
  • 免费网页设计成品网站宁波seo网络推广咨询热线
  • 怎么做移动网站网上电商怎么做
  • 全球网站建设建立一个企业网站需要多少钱
  • 专业做域名的网站吗互联网广告销售
  • 做外贸主要看什么网站网络seo优化平台
  • 专门做win7的网站营销型网站建设实训总结
  • 静态网站制作wordpress模版爱站工具包官网
  • web网站开发课程设计总结360优化大师下载
  • 做网站用什么团建网络营销案例ppt
  • 沈阳网站建设德泰诺100条经典广告语
  • 免费发布信息网站大全注册线上引流线下推广方案
  • 拉萨工商做年检网站东莞网络营销公司
  • 合肥建设网站优化系统
  • 如何做企业套模网站搜索引擎优化工作
  • 网站建设精美模板四川疫情最新情况
  • 做网站时数据库要创建几个表北京谷歌seo公司
  • 网页版微信登录手机会显示吗郑州seo代理外包
  • 福州网站制作有限公司临沂seo排名外包
  • 网站建设泉州引擎优化搜索
  • 做网站什么类型好宁波seo关键词
  • 住房和城乡建设部网站注册进度qq群引流推广平台
  • dw cs6网站建设上海seo怎么优化
  • 广州最近什么病毒感染seo sem是啥
  • 做网站公司做网站公司有哪些营销网络是什么意思
  • 长宁怎么做网站优化好凡科网怎么建网站
  • 线上网站建设需求网站推广的营销策划方案
  • 承德专业做网站的公司google优化师
  • 做网站连接数据库怎么显示图片百度识图搜索引擎
  • 南京网站优化报价网络推广的方法包括