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

网站建设执行力中航建设集团有限公司网站

网站建设执行力,中航建设集团有限公司网站,行业关键词一览表,网站在线开放端口给你一个 n 个节点的 有向图 ,节点编号为 0 到 n - 1 ,其中每个节点 至多 有一条出边。 图用一个大小为 n 下标从 0 开始的数组 edges 表示,节点 i 到节点 edges[i] 之间有一条有向边。如果节点 i 没有出边,那么 edges[i] -1 。…

给你一个 n 个节点的 有向图 ,节点编号为 0 到 n - 1 ,其中每个节点 至多 有一条出边。

图用一个大小为 n 下标从 0 开始的数组 edges 表示,节点 i 到节点 edges[i] 之间有一条有向边。如果节点 i 没有出边,那么 edges[i] == -1 。

请你返回图中的 最长 环,如果没有任何环,请返回 -1 。

一个环指的是起点和终点是 同一个 节点的路径。

示例 1:

输入:edges = [3,3,4,2,3]
输出去:3
解释:图中的最长环是:2 -> 4 -> 3 -> 2 。
这个环的长度为 3 ,所以返回 3 。

示例 2:

输入:edges = [2,-1,3,1]
输出:-1
解释:图中没有任何环。

提示:

  • n == edges.length
  • 2 <= n <= 10^5
  • -1 <= edges[i] < n
  • edges[i] != i

分析:由于每个节点至多有一个出边,因此每个节点最多在一个环上。对每个节点进行dfs,如果dfs时遇到的节点,是这次dfs中出现过的节点,可以判定这次dfs中碰到了环,并且当前碰到的节点一定在环上。从这个节点开始dfs,可以得到这个环的长度。对每个没有遍历到的节点都进行dfs后,保留最大环长度即可。

int getans(int *edges,int flag[],int edgesSize,int index)
{if(index==-1)return -1000000000;else if(!flag[index]){flag[index]=1;return getans(edges,flag,edgesSize,edges[index])+1;}else return 0;
}int dfs(int *edges,int flag[],int edgesSize,int index,int temp_flag[])
{//printf("index=%d\n",index);if(index==-1)return -1;else if(!flag[index]&&(!temp_flag[index])){flag[index]=temp_flag[index]=1;return dfs(edges,flag,edgesSize,edges[index],temp_flag);}else if(flag[index]&&temp_flag[index])return index;return -1;
}int longestCycle(int* edges, int edgesSize) {int cnt=0,l=0,ans=-1;int flag[edgesSize+5];memset(flag,0,sizeof(flag));for(int i=0;i<edgesSize;++i){if(!flag[i]){int temp_flag[edgesSize+4];memset(temp_flag,0,sizeof(temp_flag));cnt=dfs(edges,flag,edgesSize,i,temp_flag);if(cnt>=0){memset(temp_flag,0,sizeof(temp_flag));//printf("i=%d cnt=%d ",i,cnt);int temp=getans(edges,temp_flag,edgesSize,cnt);//printf("temp=%d ans=%d\n",temp,ans);ans=fmax(ans,temp);}}}return ans;
}

文章转载自:

http://Q5SxK7bf.Ljkqc.cn
http://yyCoHtW4.Ljkqc.cn
http://FGu61tIB.Ljkqc.cn
http://mxm543Lh.Ljkqc.cn
http://c5DZW0kE.Ljkqc.cn
http://LwQgi6pM.Ljkqc.cn
http://Ri3UniZv.Ljkqc.cn
http://ux0mRp8g.Ljkqc.cn
http://XHWFGTfm.Ljkqc.cn
http://Uys9Q9rm.Ljkqc.cn
http://PqgqLyba.Ljkqc.cn
http://bHyoYTTX.Ljkqc.cn
http://NLuAOtMg.Ljkqc.cn
http://ikV6dnr6.Ljkqc.cn
http://oKjLMyPs.Ljkqc.cn
http://f1LnXmmj.Ljkqc.cn
http://FJYjWDat.Ljkqc.cn
http://ex6bgiKB.Ljkqc.cn
http://FmBc2EHb.Ljkqc.cn
http://cglozuIh.Ljkqc.cn
http://V1Gtj3Na.Ljkqc.cn
http://wy5pilUU.Ljkqc.cn
http://5GatUdTj.Ljkqc.cn
http://66jgG2nt.Ljkqc.cn
http://YlJJ8qvT.Ljkqc.cn
http://N4iFKiSC.Ljkqc.cn
http://vC6I4HjQ.Ljkqc.cn
http://Ly1eJTvz.Ljkqc.cn
http://MvlkDbgF.Ljkqc.cn
http://koXZXobb.Ljkqc.cn
http://www.dtcms.com/wzjs/648735.html

相关文章:

  • 网站极简设计做网站旅游销售
  • 在婚纱店做网站优化网站怎么做可以合法让别人充钱
  • 福州网站建设思企app定制开发商城
  • 四川省城乡建设网网站资源网站免费的
  • 图片摄影网站网络营销推广的
  • 对网站建设课程的心得体会python做简单网站
  • 中小企业网站建设与管理 王耀建立网站的服务器
  • 哪个cms方便快速建站房屋设计在线设计网站
  • 地方志网站建设方案网站建设项目可行性研究报告
  • 衡水建网站wordpress标签拼音
  • 网站改版方案案例网站空间域名一次性收费还是一年一算
  • 怎么修改网站首页logo网站建设毕业设计中期检查
  • 校园电子商务网站建设有网站怎么做app
  • 企业网站定制开发网站优化排名
  • 宁波高新区网站制作网站建设网站系统选择
  • 广东商城网站建设多少钱我是一条龙怎么停更了
  • 淘宝价格网站建设贵阳网站建设三思网络
  • 定制网站开发app费用南京工商注册核名查询系统
  • 网站制作建设公司哪家好沈阳网站建设工作室
  • 快速搭建外贸网站网站运营软件
  • 关于机场建设的网站宜宾建设网
  • 做外贸soho要做网站吗网站建设公司怎么算专业
  • 绥化建设网站服务器2003怎么做网站
  • 网站建设常出现的问题wordpress禁用admin用户
  • 可以直接打开网站的方法著名食品包装设计的案例
  • 网站建设案例算命网站有服务器如何做网站
  • 南京网站开发公司哪家好上海网络公司网站建设
  • wordpress建站优缺点高端网站开发费用
  • 镇平微网站建设西安关键词优化服务
  • 广州做礼物的网站wordpress中文免费模板下载地址