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

西安网站建设价格热线大连网络推广公司哪家好

西安网站建设价格热线,大连网络推广公司哪家好,中国外贸企业100强,三只松鼠营销案例分析leetcode:105. 有向图的完全联通 题目 【题目描述】 给定一个有向图,包含 N 个节点,节点编号分别为 1,2,...,N。现从 1 号节点开始,如果可以从 1 号节点的边可以到达任何节点,则输出 1&#…

leetcode:105. 有向图的完全联通

题目

【题目描述】

给定一个有向图,包含 N 个节点,节点编号分别为 1,2,...,N。现从 1 号节点开始,如果可以从 1 号节点的边可以到达任何节点,则输出 1,否则输出 -1。

【输入描述】

第一行包含两个正整数,表示节点数量 N 和边的数量 K。 后续 K 行,每行两个正整数 s 和 t,表示从 s 节点有一条边单向连接到 t 节点。

【输出描述】

如果可以从 1 号节点的边可以到达任何节点,则输出 1,否则输出 -1。

思路

判断一个点是否可以到达其他点,就用DFS或者BFS,跟之前的岛屿问题很像。

比如说用dfs的话,还是有两种方式:

  1. dfs处理下一个节点
  2. dfs处理当前节点

跟之前一样,为了保证模版跟以前回溯那边的相同,我一般都会选择第2种方式。

深搜三部曲:

(1)确认递归函数、参数

参数包括:

  • 整个地图graph
  • 当前的这个节点,用key表示
  • 已经走过的点visited

所以dfs写成:

void dfs(vector<vector<int>> &graph, int key, vector<bool> &visited)

(2)终止条件

对于dfs第二种方式,我们在进入dfs的时候,立马进行终止条件判断:

就是如果这个key已经走过,那么这一层的dfs就可以停止。

(3)处理目前搜索节点出发的路径

我一般把这个叫下一步节点的处理或者周边节点的处理。

以前在岛屿问题里面,我们是设定了上下左右四个方向的数组,下一个节点那就是上下左右的节点,然后进行处理。

这里下一个节点就在邻接矩阵里面,所以我们遍历邻接矩阵,然后每一个进行dfs就行,这是跟岛屿问题的根本区别!!!

最终代码:

#include <bits/stdc++.h>
using namespace std;void dfs(vector<vector<int>> &graph, int key, vector<bool> &visited)
{// 终止条件if (visited[key])return;visited[key] = true;vector<int> keys = graph[key];for (int k : keys){dfs(graph, k, visited);}
}int main()
{int n, m, s, t;cin >> n >> m;// 建立邻接表vector<vector<int>> graph(n + 1);while (m--){cin >> s >> t;graph[s].push_back(t);}// 建立访问数组vector<bool> visited(n + 1, false);// 深搜:从1开始搜索整个地图dfs(graph,1,visited);// 检查是否所有节点都访问到了for (int i = 1; i <= n; i++){if (visited[i] == false){cout << -1 << endl;return 0;}}cout << 1 << endl;return 0;
}

 从节点1开始搜索整个地图,最后判断  visited数组是否所有的点都被标记上true。

总结

跟岛屿问题是差不多的,就是在dfs里面处理下一个节点,这里使用邻接表。

参考资料

 代码随想录

http://www.dtcms.com/wzjs/270095.html

相关文章:

  • 如何制作网站app网络营销推广工作内容
  • 做网站虚拟主机和云服务器深圳广告公司排名
  • 幼儿园网站的建设需求分析百度公司图片
  • wordpress wp_post深圳seo推广培训
  • 个人做外包网站多少钱成都seo学徒
  • dw做网站的导航栏优化大师优化项目有
  • 互联网站备案信息seo成功案例分析
  • 怎么在网上做公司的网站软文营销经典案例200字
  • 高手做网站武汉seo推广优化公司
  • 工厂网站建设公司搜索引擎推广培训
  • 手机做炫光头像图的网站赣州网站seo
  • seo外包优化服务商春哥seo博客
  • 做网站百度收费吗营销策划公司取名大全
  • 让别人做的网站不给源代码网络营销推广策划书
  • 和龙市建设局网站5118网站查询
  • 永康企业网站建设公司美国今天刚刚发生的新闻
  • wordpress 多商户seo网络推广培训
  • 牙科医院网站建设方案seo推广公司
  • 广州网站建设易得怎么做好网络营销
  • 微官网和微网站广告联盟代理平台
  • 如何维护公司网站营销网站制作公司
  • 有域名怎么建网站seo教育
  • 中国建设工程造价管理网站seo的外链平台有哪些
  • 如何看别人网站用什么做的网站设计说明
  • 做易拉宝的素材网站自助建站工具
  • 网站开发与维护难吗网易游戏推广代理加盟
  • 贵州省建设厅二建报名网站建立一个网站需要多少钱?
  • 广西长长路桥建设有限公司网站免费网络推广软件有哪些
  • 在淘宝上做代销哪个网站好百度云登录入口
  • 网站 虚拟空间全国防疫大数据平台