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

免费找客户的网站哈尔滨建设工程招标网

免费找客户的网站,哈尔滨建设工程招标网,搜索推广营销,中仑建设网站dijsktra算法模板: def dijkstra(x):#x表示出发点dis[inf]*n #dis记录从x出发到各个点的最短距离,初始化为infdis[x]0 #源点到自己的距离为0vis[False]*n #检查各个点是否访问过for _ in range(n-1): #检查除了源点的其他n-1个点,更新dis…

dijsktra算法模板:

def dijkstra(x):#x表示出发点dis=[inf]*n #dis记录从x出发到各个点的最短距离,初始化为infdis[x]=0    #源点到自己的距离为0vis=[False]*n #检查各个点是否访问过for _ in range(n-1): #检查除了源点的其他n-1个点,更新disnode=-1 #开始假设不知道谁是离源点最近的点for j in range(n):#循环查找谁是离源点最近的那个点if not vis[j] and (node==-1 or dis[j]<dis[node]):node=jfor j in range(n):#对node的邻居点进行松弛处理dis[j]=min(dis[j],dis[node]+g[node][j])vis[node]=True #对node点标记为已访问

​​​​​​​743. 网络延迟时间
因为本题的节点是从1到n,所以最后把dis数组中的第一个忽略掉(dis[1:])

然后就是经典的dijkstra最短路径算法,套用模板即可。

class Solution:def networkDelayTime(self, times: List[List[int]], n: int, k: int) -> int:g=[[inf]*(n+1) for _ in range(n+1)]for x,y,w in times:g[x][y]=wdis=[inf]*(n+1)dis[k]=0vis=[False]*(n+1)for _ in range(n):x=-1for i in range(1,n+1):if not vis[i] and (x==-1 or dis[i]<dis[x]):x=ifor i in range(1,n+1):dis[i]=min(dis[i],dis[x]+g[x][i])vis[x]=Trueans=max(dis[1:])return ans if ans!=inf else -1

2642. 设计可以求最短路径的图类
又是dijkstra最短路径算法,这里需要判断一下能否到达终点的问题:

class Graph:def __init__(self, n: int, edges: List[List[int]]):self.n=nself.g=[[float("INF")]*n for _ in range(self.n)]for x,y,cost in edges:self.g[x][y]=costdef addEdge(self, edge: List[int]) -> None:self.g[edge[0]][edge[1]]=edge[2]def shortestPath(self, node1: int, node2: int) -> int:n=len(self.g)dis=[float('INF')]*ndis[node1]=0vis=[False]*nwhile 1:x=-1for i,(b,d) in enumerate(zip(vis,dis)):if not b and (x<0 or d<dis[x]):x=iif x<0 or dis[x]==float('INF'):return -1if x==node2:return dis[x]vis[x]=Truefor y,w in enumerate(self.g[x]):if dis[x]+w<dis[y]:dis[y]=dis[x]+w# Your Graph object will be instantiated and called as such:
# obj = Graph(n, edges)
# obj.addEdge(edge)
# param_2 = obj.shortestPath(node1,node2)

1334. 阈值距离内邻居最少的城市
枚举每个点作为出发点,算法返回小于等于阈值的数目即可。

因为题目要求返回数量最少且编号最大的点,所以从n-1到0遍历即可。

class Solution:def findTheCity(self, n: int, edges: List[List[int]], distanceThreshold: int) -> int:g=[[inf]*n for _ in range(n)]for x,y,w in edges:g[x][y]=wg[y][x]=w#枚举每个点作为出发点,做dijkstra算法def dijkstra(x):dis=[inf]*ndis[x]=0vis=[False]*nfor _ in range(n-1):node=-1for j in range(n):if not vis[j] and (node==-1 or dis[j]<dis[node]):node=jfor j in range(n):dis[j]=min(dis[j],dis[node]+g[node][j])vis[node]=Truereturn sum(d<=distanceThreshold for d in dis)ans,cnt=n,inf    for i in range(n-1,-1,-1):if dijkstra(i)<cnt:cnt=dijkstra(i)ans=ireturn ans

http://www.yayakq.cn/news/311530/

相关文章:

  • 构建一个网站的步骤网站虚拟空间
  • 自学网站建设南通优化网站收费标准
  • 常州网站建设中国企业在线官网
  • 手机商城网站建设策划方案范文做网站的用多少钱
  • 做网站有一行一行写代码的吗宁波住房和城乡建设网站
  • 怎么查看网站是用什么系统做的吉水县建设局网站
  • 如何提高商城网站权重中国建设银行官网登录入口手机版
  • 网站推广具体内容简要说明网站举报有奖平台
  • 本溪市城乡住房建设厅网站化妆品公司的网站建设策划书
  • 沧州高端网站建设公司cvm服务器
  • oa网站开发适合个人做外贸的网站
  • jsp网站开发详解 下载j2ee做网站
  • 苏州网站建设官网国外可以用什么网站做问卷
  • 网站推广公司傻大白广东东莞建设网
  • 网站建设衣服学佛网站开发项目需求分析
  • 河北企业网站建设技术津坤科技天津网站建设
  • 学习网站大全怎么能在网上卖货
  • 如何给网站做高质量外链Wordpress调用搜索
  • 宣讲家网站 家风建设家具能在什么网站上做
  • 征婚网站上教人做恒指期货单片机开发工程师
  • 国内外贸平台seo排名快速
  • 网站开发社交网络功能的作用裤子seo关键词
  • 想在网上做设计接单有没有网站云南昆明网站建设快速优化
  • 外包网站建设是什么意思响应式网站模板xd
  • 一些可以做翻译的网站wordpress个人模板下载
  • 网站密度wordpress 虚拟资源
  • 阿里云网站备份网站开发行业资讯
  • 购物网站开发uml图淘宝自己建的网站
  • 东莞营销网站建设多少钱闵行郑州阳网站建设
  • 广州做网站哪个平台好网络关键词优化软件