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

开个个人网站企业网站备案要多少钱

开个个人网站,企业网站备案要多少钱,安康网站建设小程序,wordpress顶部插件文章目录 判断图是否有环,是一个技术性的问题,当一个图规定了起点的时候,我们只需设置一个visited数组(初始值为False),当接下来访问到的结点i是visited[i]True的时候,我们就可以说存在一个环了…

文章目录

  • 判断图是否有环,是一个技术性的问题,当一个图规定了起点的时候,我们只需设置一个visited数组(初始值为False),当接下来访问到的结点i是visited[i]=True的时候,我们就可以说存在一个环了,这样的话,时间复杂度就是o(n)
  • 但是,如果图并有规定从哪一个顶点开始,那么我们应该如何判断这个图中是否存在环?由于没有规定是从哪一个点作为遍历的开始,所以要是采用上面的思路进行的话,就需要考虑从每一个点作为起点的情况,那么这样的话,时间复杂度就会来到o(n^2),那么应该怎么办?

下面介绍三色标记法,也就是将结点分为,未被访问、正在访问、已经访问过,这三种情况

三色标记法

  • 具体思路:
  • 对于每一个节点x,都定义三种颜色值(状态值):
  • 0,节点x尚未被访问到
  • 1,节点x正在访问中,dfs(x)尚未结束
  • 2,节点x已经完全访问完毕,dfs(x)已经返回

注意:只使用两种状态是不能处理是否存在环的

我们所说的,节点x正在访问中,是说我们正在递归处理节点x以及它的后续节点,dfs(x)尚未结束

  • 时间复杂度:每个节点只会被访问一次,每一条边也会被访问一次,所以时间复杂度是o(N+E)

在这里插入图片描述
在这里插入图片描述

  • 思路分析:直接套用三色标记法即可

Python思路

class Solution:def canFinish(self, numCourses: int, prerequisites: List[List[int]]) -> bool:g = [[] for _ in range(numCourses)]for a, b in prerequisites:g[b].append(a)colors = [0] * numCourses# 返回 True 表示找到了环def dfs(x: int) -> bool:colors[x] = 1  # x 正在访问中for y in g[x]:if colors[y] == 1 or colors[y] == 0 and dfs(y):return True  # 找到了环colors[x] = 2  # x 完全访问完毕return False  # 没有找到环for i, c in enumerate(colors):if c == 0 and dfs(i):return False  # 有环return True  # 没有环

C++思路

class Solution {
public:bool canFinish(int numCourses, vector<vector<int>>& prerequisites) {vector<vector<int>> g(numCourses);for (auto& p : prerequisites) {g[p[1]].push_back(p[0]);}vector<int> colors(numCourses);// 返回 true 表示找到了环auto dfs = [&](this auto&& dfs, int x) -> bool {colors[x] = 1; // x 正在访问中for (int y : g[x]) {if (colors[y] == 1 || colors[y] == 0 && dfs(y)) {return true; // 找到了环}}colors[x] = 2; // x 完全访问完毕return false; // 没有找到环};for (int i = 0; i < numCourses; i++) {if (colors[i] == 0 && dfs(i)) {return false; // 有环}}return true; // 没有环}
};

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

  • 思路分析:

python代码

class Solution {
public:bool canFinish(int numCourses, vector<vector<int>>& prerequisites) {vector<vector<int>> g(numCourses);for (auto p: prerequisites){g[p[1]].push_back(p[0]);}vector<int> colors(numCourses);auto dfs = [&](this auto && dfs,int x) -> bool{colors[x] = 1;for (int y : g[x]){if (colors[y] == 1 || colors[y] == 0 && dfs(y)){return true;}}colors[x] = 2;return false;};for (int i = 0; i < numCourses; i++){if (colors[i] == 0 && dfs(i)){return false;}}return true;}
};
http://www.dtcms.com/a/436576.html

相关文章:

  • 制作网站需要怎么做应用镜像wordpress
  • 杭州公司网站制作维护小橘子被做h网站
  • 佛山网站建设在哪自己做图网站
  • 网站更换域名 seohtml5特效网站源码
  • 建设网站的编程过程网站建设与管理维护书籍
  • 医疗基因组数据存储与管理架构研究
  • 网站设计与制作说明书网站建设面试问题
  • 网站logo怎么做动态图句容网络公司
  • CuPy安装教程(亲测可用)
  • 定制开发电商网站建设公司如何免费做公司网站
  • 大气预警在建设局网站wordpress有访客记录
  • 宁波网站建设联系电话查询关于网站策划的说法错误的是
  • 站酷网海报素材图片番禺招聘网最新信息
  • 辽源网站优化正规公司都有哪些部门
  • 眼科医院网站开发策划网站开发与应用论文
  • 浙江华企做的网站怎么样陕西住房城乡住房建设厅网站
  • 如何建立简单网站天元建设集团有限公司官网首页
  • 新郑做网站优化网站建设模
  • 无锡梅村网站建设外贸网站建站费用
  • 哪里做网站做得好如何快速学成网站开发
  • 【LangChain】P8 大模型调用方法详解:从阻塞式到流式访问
  • 如何建网站并做推广贵州建设厅考试网站二建成绩查询
  • 网站建设到运营需要多少钱惠州做棋牌网站建设哪家技术好
  • 怎么查看一个网站的建设地区杭州建站模板
  • 阜南县建设局网站织梦网站模板如何安装教程视频
  • 网站ico设计大连网站排名推广
  • 如何让你的Stata接入大模型Agent?Stata MCP+ IDE配置教程
  • 做外贸网站哪家的好开发公司对联
  • 腾讯云手动搭建wordpress个人站点百度广告联盟一个月能赚多少
  • 做家乡网站的素材内蒙古建设厅设计处网站