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

企业建设网站目的比较有名的编程培训机构

企业建设网站目的,比较有名的编程培训机构,阿里巴巴网页版,wordpress数据搬移目录 1 基础知识 1.1 什么是拓扑排序 1.2 如何进行拓扑排序 1.3 拓扑排序举例 2 207. 课程表 3 210. 课程表 II 菜鸟做题#xff0c;语言是 C 1 基础知识 1.1 什么是拓扑排序 含义#xff1a;根据节点之间的依赖关系来生成一个有序的序列。 应用#xff1a…目录 1  基础知识 1.1  什么是拓扑排序 1.2  如何进行拓扑排序 1.3  拓扑排序举例 2  207. 课程表 3  210. 课程表 II 菜鸟做题语言是 C 1  基础知识 1.1  什么是拓扑排序 含义根据节点之间的依赖关系来生成一个有序的序列。 应用 在项目管理中按照任务之间的的依赖关系来安排执行顺序。在编译原理中按照编译单元的依赖关系来确定编译单元的生成顺序。在程序设计中按照模块之间的依赖关系来确定模块的加载和执行顺序。 突然想起来好像在操作系统原理里学过 1.2  如何进行拓扑排序 排序步骤 选择入度为 0 的节点加入到排序结果中并从图中移除该节点以及它的所有出边重复步骤 1每次都选择入度为 0 的节点加入到排序结果中并更新图中剩余节点的入度重复步骤 1 和 2直到所有的节点都被加入到排序结果中或者不再存在入度为 0 的节点。 名词解释 → 节点  属于节点的 入边节点 →  属于节点的 出边 如果图中不再存在入度为 0 的节点且并非所有的节点都被加入到排序结果中那么说明原图中存在环。综上拓扑排序的主要功能是帮助安排顺序顺带帮助检测图中有没有环。 1.3  拓扑排序举例 下图描述了一个拓扑排序过程。 ① 入度为 0 的节点有 B、D我们任意选择 B并删除它的出边 ② 入度为 0 的节点有 A、D我们任意选择 A并删除它的出边更新后入度为 0 的节点有 C、D我们任意选择 C并删除它的出边 ③ 入度为 0 的节点有 D我们选择 D并删除它的出边更新后入度为 0 的节点有 F我们选择 F并删除它的出边 以此类推不再赘述。通过 “任意选择” 一词可以看出拓扑排序的结果不止一种。 2  207. 课程表 感觉解题方法和拓扑排序关系不大更多的是从题意出发想了很久要怎么才能把思路表述清楚最终认为还是看代码来得快 TT 解题思路假设有先修课程对 [01] 和 [02] 初始化获取每门课程的先修课程数组比如0 对应 [12]初始化设置记录访问状态的数组并将访问状态全部置为 0循环访问每门课程判断它的先修课程是否已经被全部修完如果它的先修课程未被全部修完则表明无法完成所有课程的学习 访问状态 visited[course] 0该门课程还未被学习visited[course] 1该门课程正在被学习visited[course] 2该门课程已经被学习 针对 “该门课程正在被学习” 的说法需要说明的是这是算法题而不是现实生活如果一门课正在被学习不是代表学习它需要一段时间而是代表它的先修课程不可能被修完导致我们永远学不了它。 class Solution { public:vectorint visited;vectorvectorint mustFinish;bool possible true;void helper(int course) {// 指明该门课程正在被学习visited[course] 1;// 判断其先修课程是否已被修完for (auto preCourse : mustFinish[course]) {// 递归访问未被学习的先修课程if (visited[preCourse] 0) {helper(preCourse);if (!possible) return;// 先修课程正在被学习因为卡住了} else if (visited[preCourse] 1) {possible false;return;}}// 指明该门课程已经被学习visited[course] 2;}bool canFinish(int numCourses, vectorvectorint prerequisites) {visited.resize(numCourses);mustFinish.resize(numCourses);// 获取每门课程的先修课程数组for (auto p : prerequisites) {mustFinish[p[0]].push_back(p[1]);}// 循环访问每门课程for (int i 0; i numCourses possible; i) {helper(i);}return possible;} }; 3  210. 课程表 II 在  207. 课程表  的基础上增加一个数据结构来存储课程顺序即可。 唯一区别在于 for (int i 0; i numCourses possible !visited[i]; i) 新增条件 !visited[i]不允许已经被访问过的课程再被访问避免了课程重复被学习。 class Solution { public:vectorint visited;vectorvectorint mustFinish;bool possible true;vectorint ans;void helper(int course) {visited[course] 1;for (auto preCourse : mustFinish[course]) {if (visited[preCourse] 0) {helper(preCourse);if (!possible) return;} else if (visited[preCourse] 1) {possible false;return;}}visited[course] 2;ans.push_back(course);}vectorint findOrder(int numCourses, vectorvectorint prerequisites) {visited.resize(numCourses);mustFinish.resize(numCourses);for (auto p : prerequisites) {mustFinish[p[0]].push_back(p[1]);}for (int i 0; i numCourses possible !visited[i]; i) {helper(i);}if (possible) return ans;return {};} };
http://www.pierceye.com/news/632276/

相关文章:

  • 怎么查询网站是否被收录网络推广软件有哪些
  • 福田我要做网站优化比较好wordpress美图模板
  • wordpress 分享可见湖南优化电商服务有限公司
  • 高培淇自己做的网站网站页面可以用什么框架做
  • 在线推广企业网站的方法有哪些门户网站例子
  • 网站集约化建设 技术优质网站建设是哪家
  • 网站技术制作广州番禺建设银行网站登录
  • 女同性怎么做的视频网站wordpress 文章 定时
  • 域名备案时网站名字wordpress mip主题
  • 旅行社服务网点能否做网站wordpress4.9.8 php版本
  • 网站名称 如何注册wordpress用户名的要求
  • 玉树州wap网站建设公司常州市工程建设招标网
  • 自助网站建设技术支持如何做网站代码
  • 企业数据查询网站word 没有安装wordpress
  • 注册一个设计公司需要多少钱重庆网站建设及优化
  • 青岛企业建设网站公司如何传图片做网站
  • 手机网站源码教程个人博客系统的设计与实现
  • 高端网站改版南京网站如何制作
  • 个人网站建设课程专业彩票网站开发 APP开发
  • 学网站开发首先学哪些基础兰州网站设计哪个平台好
  • 网站后台看不到部分内容桐庐建设局网站
  • 宁夏网站建设费用地址wordpress建站好用吗
  • 微信网站制作哪个好吕梁网站制作
  • 手机怎么制作自己的网站线上运营推广方案
  • 泉州企业制作网站wordpress上传顶部图像
  • php建立网站广州创意设计公司
  • 东营专业网站建设济南天桥区网站建设公司
  • 鹤壁做网站多少钱网站开发 简单留言板
  • 网站建设 阿里东莞seo建站优化公司
  • logo设计竞标网站wordpress攻击跳转