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

高端网站建设推广博客类网站建设

高端网站建设推广,博客类网站建设,网站制作视频教程下载,一级消防工程师考试成绩题目链接 Leetcode.2359 找到离给定两个节点最近的节点 Rating #xff1a; 1715 题目描述 给你一个 n个节点的 有向图 #xff0c;节点编号为 0到 n - 1#xff0c;每个节点 至多 有一条出边。 有向图用大小为 n下标从 0开始的数组 edges表示#xff0c;表示节点 i有一条…题目链接 Leetcode.2359 找到离给定两个节点最近的节点 Rating 1715 题目描述 给你一个 n个节点的 有向图 节点编号为 0到 n - 1每个节点 至多 有一条出边。 有向图用大小为 n下标从 0开始的数组 edges表示表示节点 i有一条有向边指向 edges[i]。如果节点 i没有出边那么 edges[i] -1。 同时给你两个节点 node1和 node2。 请你返回一个从 node1和 node2都能到达节点的编号使节点 node1和节点 node2到这个节点的距离 较大值最小化。如果有多个答案请返回 最小 的节点编号。如果答案不存在返回 -1。 注意 edges可能包含环。 示例1 输入edges [2,2,3,-1], node1 0, node2 1 输出2 解释从节点 0 到节点 2 的距离为 1 从节点 1 到节点 2 的距离为 1 。 两个距离的较大值为 1 。我们无法得到一个比 1 更小的较大值所以我们返回节点 2 。 示例2 输入edges [1,2,-1], node1 0, node2 2 输出2 解释节点 0 到节点 2 的距离为 2 节点 2 到它自己的距离为 0 。 两个距离的较大值为 2 。我们无法得到一个比 2 更小的较大值所以我们返回节点 2 。 提示 nedges.lengthn edges.lengthnedges.length2n1052 n 10^52n105−1edges[i]n-1 edges[i] n−1edges[i]nedges[i]!iedges[i] ! iedges[i]!i0node1,node2n0 node1, node2 n0node1,node2n 解法一BFS 一个比较容易想到的解法是对于 node1和 node2分别通过 BFS 计算其 到各个点的距离矩阵 d1和 d2。 对于 d1和 d2我们从小到大遍历更新最小的 较大值。 时间复杂度O(n)O(n)O(n) 代码 class Solution { public: // 建图unordered_mapint,vectorint g;//bfs 求起点 root 到各个点的距离矩阵void bfs(int root,vectorint dist){queueint q;q.push(root);int step 0;while(!q.empty()){int sz q.size();for(int i 0;i sz;i){auto t q.front();q.pop();dist[t] step;for(auto v:g[t]){if(dist[v] ! -1) continue;q.push(v);}}step;}}int closestMeetingNode(vectorint edges, int node1, int node2) {int n edges.size();for(int i 0;i n;i){if(edges[i] -1) continue;int a i, b edges[i];g[a].push_back(b);}vectorint a(n,-1),b(n,-1);bfs(node1,a);bfs(node2,b);/*for(int i 0;i n;i){printf(i %d , d1 %d , d2 %d\n,i,a[i],b[i]);}*/int dist 1e9;int idx -1;for(int i 0;i n;i){if(a[i] -1 || b[i] -1) continue;int d max(a[i],b[i]);if(dist d){dist d;idx i;}}return idx;} };解法二遍历 题目给定地有向图实际上是一个 基环树因为每一个结点的 出边最多只有一条所以实际上我们不需要建图只需要直接循环遍历即可。 时间复杂度O(n)O(n)O(n) 代码 class Solution { public:int closestMeetingNode(vectorint edges, int node1, int node2) {int n edges.size();auto dfs [](int u) - vectorint{vectorint dist(n,1e9);int d 0;while(u ! -1 dist[u] 1e9){dist[u] d;d;u edges[u];}return dist;};auto d1 dfs(node1);auto d2 dfs(node2);int ans 1e9,idx -1;for(int i 0;i n;i){if(d1[i] 1e9 || d2[i] 1e9) continue;int d max(d1[i],d2[i]);if(ans d){ans d;idx i;}}return idx;} };
http://www.hkea.cn/news/14478949/

相关文章:

  • 小程序推广网站网站开发app开发
  • 企业网站建设排名免费正能量的软件ppt
  • 易网网站如何做视频网站流程图
  • 健身网站模板网站设计定位
  • 张家口住房和城乡建设厅网站全球最好的域名注册公司
  • 外贸seo外贸推广外贸网站建设外贸网站建设柳州网站seo网站s
  • 企业网站排名软件能优化做百度网站排
  • 莞城网站推广太原模板建站定制网站
  • 烟台开发区做网站做网络推广自己建网站
  • 网络创作网站wordpress phpstorm
  • 鹤壁专业做网站公司阿里企业邮箱收费标准一年多少钱
  • 商城网站 模板网站备案负责人 更换
  • 备案网站公共查询系统网页设计素材整理分级是什么意思
  • 企业网站建设投标书品牌型网站的特点
  • 网站系统的设计与实现网页设计制作网站模板图片
  • 学校网站建设机构好用网站推荐
  • 企业网站运营问题wordpress搬家问题
  • 做木业网站怎样起名男女做污的网站
  • 男生和男生做污的视频网站最优做网站
  • 淘宝客做连接网站手机网站制作方案
  • 无锡网站设计网站站酷的网址
  • 用php做的网站源代码网站建设与管理总结
  • 二级网站建设比较好的平面设计网站
  • 广州自助公司建网站p9制作公司
  • 网站优化开发wordpress 手机 主题
  • 建设网站都要什么建e网手机版
  • 长乐住房和城乡建设局网站做网站那家比较好
  • 曲靖网站建设dodoco三星网上商城官网app下载
  • 广西网站建设电话江苏建设类专业技术人员资格考试
  • 众筹网站建设报价贵州网站建设系统