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

市总工会智慧网站建设总结免费外贸接单平台

市总工会智慧网站建设总结,免费外贸接单平台,开封网站建设,ai免费模板网站文章目录 3243.新增道路查询后的最短距离1311.获取你好友已观看的视频 BFS:广度优先搜索(BFS) 是一种常用的算法,通常用于解决图或树的遍历问题,尤其是寻找最短路径或层级遍历的场景。BFS 的核心思想是使用队列(FIFO 数…

文章目录

  • 3243.新增道路查询后的最短距离
  • 1311.获取你好友已观看的视频

BFS:广度优先搜索(BFS) 是一种常用的算法,通常用于解决图或树的遍历问题,尤其是寻找最短路径或层级遍历的场景。BFS 的核心思想是使用队列(FIFO 数据结构)来逐层遍历节点。

  • 模版
from collections import deque
# graph
def bfs(start):# 初始化队列,并将起始节点加入队列queue = deque([start])# 初始化 visited 集合,记录已访问的节点visited = set([start])while queue:# 从队列中取出当前节点node = queue.popleft()# 处理当前节点(例如打印、判断条件等)# 遍历当前节点的邻居for neighbor in graph[node]:if neighbor not in visited:# 将未访问的邻居加入队列,并标记为已访问queue.append(neighbor)visited.add(neighbor)

BFS求解最短距离:必要的条件是每条边的权值都是1

  • 最短距离的求解:分为求解start到end,以及start到剩余节点的问题
def bfs(start,end):queue = deque([start])# 可以记录是否访问过,还可以记录距离visited = {start:0}while queue:node = queue.popleft()if node == end:return visited[node]# friends是邻接表for neigh in friends[node]:if neigh not in visited:# 距离的更新visited[neigh] = visited[node] +  1queue.append(neigh)
  • 最短路径,求解start到其余节点的距离,区别在于删除了那个if node == end的判断
from collections import deque
# 这个friend是邻接表
def bfs(start):# 初始化队列,将起始节点加入队列queue = deque([start])# 记录每个节点是否被访问过以及从起始节点到该节点的最短距离# 初始时,起始节点的距离为 0visited = {start: 0}while queue:# 从队列中取出一个节点node = queue.popleft()# 遍历该节点的所有邻居节点for neigh in friends[node]:if neigh not in visited:# 如果邻居节点未被访问过,更新其距离为当前节点距离加 1visited[neigh] = visited[node] + 1# 将邻居节点加入队列,以便后续继续遍历其邻居queue.append(neigh)return visited

3243.新增道路查询后的最短距离

3243.新增道路查询后的最短距离

在这里插入图片描述

思路分析:

from collections import dequeclass Solution:def shortestDistanceAfterQueries(self, n: int, queries: List[List[int]]) -> List[int]:# 初始化邻接表edge = [[] for _ in range(n)]for i in range(n - 1):edge[i].append(i + 1)  # 添加单向边# BFS 函数,计算从 start 到 end 的最短距离def bfs(start, end):queue = deque([start])visited = {start: 0}  # 记录每个节点的距离,也能记录是否被访问过while queue:node = queue.popleft()if node == end:return visited[node]  # 返回最短距离for neigh in edge[node]:  # 遍历当前节点的邻居if neigh not in visited:# 注意的是这个距离的更新方式visited[neigh] = visited[node] + 1  # 更新距离queue.append(neigh)# 处理查询ans = []for p, q in queries:edge[p].append(q)  # 添加新边ans.append(bfs(0, n - 1))  # 计算最短距离return ans

1311.获取你好友已观看的视频

311.获取你好友已观看的视频

在这里插入图片描述

思路分析:

我的力扣题解

from collections import deque,defaultdict,Counter
class Solution:def watchedVideosByFriends(self, watchedVideos: List[List[str]], friends: List[List[int]], id: int, level: int) -> List[str]:# 首先我们只需记录你的朋友的级别!也就是最短距离,在最短距离的模版基础上修改即可# 后面再遍历即可# 难处在于什么都没有构建,不过这个friends就是相当于邻接表了# 我们只需计算start,enddef bfs(start,end):queue = deque([start])visited = {start:0}while queue:node = queue.popleft()if node == end:return visited[node]for neigh in friends[node]:if neigh not in visited:visited[neigh] = visited[node] +  1queue.append(neigh)n = len(watchedVideos)video = []ans = []for i in range(n):if bfs(id,i) == level:video.extend(watchedVideos[i])# 去重吧ans = list(set(i for i in video))count = Counter(video)ans_sorted = sorted(ans, key=lambda x: (count[x], x))return ans_sorted
http://www.dtcms.com/wzjs/947.html

相关文章:

  • 宜春网站开发公司电话开鲁网站seo站长工具
  • 三维建模青岛seo网站建设公司
  • 怎么做可以看外国视频网站怎样做好服务营销
  • 网站建设成本分析数字营销公司
  • seo点评类网站打广告推广怎么做
  • 石景山区公司网站建设新手怎么学电商运营
  • 做外贸的专业网站全网推广成功再收费
  • 帮网站做推广赚钱吗合肥百度竞价推广代理公司
  • 在线网站建设收费怎样才能在百度上面做广告宣传
  • 外贸网站建设公司流程推广合作
  • 青岛市南区城市建设局网站移动营销
  • 网站dns修改手机百度网页版
  • 网站开发网络公司兼职seo 优化顾问
  • 帝国cms建设 政府网站排名优化推广
  • 做网站满屏的照片尺寸是多少今日热点新闻2022
  • 安吉做网站女生做sem还是seo
  • 网站运营系统品牌营销方案
  • 建设机械网站咨询2023年适合小学生的新闻
  • 汾阳做网站的公司沈阳cms模板建站
  • 大专网站建设资料推广商
  • 网站备案平台的服务简介如何推广品牌
  • 做免费采集电影网站犯法吗宣传推广的十种方式
  • 生鲜网站建设seo哪家公司好
  • 网站的转盘游戏怎么做seo推广话术
  • 做的最好的择日择时的网站搜索引擎营销的步骤
  • wordpress可以承载多少数据seo自学网官方
  • 网站公司销售怎么做百度有几种推广方式
  • 精准引流推广公司苏州网站优化排名推广
  • 沈阳微信网站制作搭建网站的步骤
  • 网站建设选择什么模式想开个网站怎样开